MySQL NOW Function

MySQL NOW Function

 MySQL NOW Function



Summary: in this tutorial, you will learn about the MySQL NOW() function and apply the NOW function in various contexts.

Introduction to MySQL NOW() function

The MySQL NOW() the function returns the current date and time in the configured time zone as a string or a number in the 'YYYY-MM-DD HH:MM:DD' or 'YYYYMMDDHHMMSS.uuuuuu' format.

The returned type of the NOW() function depends on the context where it is used. For example, in the following statement, the NOW() the function returns the current date and time as a string:

SELECT NOW();

However, in the numeric context as the following example, the NOW() the function returns the current date and time as a number:

SELECT NOW() + 0;

Notice that the NOW() the function returns a constant date and time at which the statement started executing. See the following example:

SELECT NOW(), SLEEP(5), NOW();

In the query, the first NOW() function was executed, the SLEEP(5) function paused the execution of the query for 5 seconds, and the second NOW() function was executed. However, both NOW() functions return the same value though they are executed at different times.

If you want to get the exact time at which the statement executes, you need to use SYSDATE() instead; see the following example:

SELECT SYSDATE(), SLEEP(5), SYSDATE();

If you want to change the MySQL server’s time zone to adjust the current date and time returned by the NOW() function, you use the following statement:

SET time_zone = your_time_zone;

MySQL NOW() function calculations

Because the NOW() the function returns a number when it is used in a numeric context, you can use it in calculations e.g., now plus 1 hour, now minus 1 hour, and now plus 1 day.

The following statement returns the current date and time, now minus 1 hour and now plus 1 hour:

-- mysql now minus 1 hour SELECT (NOW() - INTERVAL 1 HOUR) 'NOW - 1 hour', NOW(), -- mysql now plus 1 hour NOW() + INTERVAL 1 HOUR 'NOW + 1 hour';

The following statement returns the current date and time, now minus 1 day and now plus 1 day:

-- mysql now minus 1 day SELECT (NOW() - INTERVAL 1 DAY) 'NOW - 1 day', NOW(), -- mysql now plus 1 day (NOW() + INTERVAL 1 DAY) 'NOW + 1 day';

Using MySQL NOW() function to provide the default value for a column

You can use the NOW() function to provide a default value for a DATETIME or TIMESTAMP column. When you omit the date or time value in the INSERT a statement, MySQL inserts the current date and time into the column whose default value is NOW() .

Let’s take a look at the following example.

First, create a new table named tmp with three columns: id , title and created_on . The created_on a column has a default value specified by the NOW() function.

CREATE TABLE tmp( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(255) NOT NULL, created_on DATETIME NOT NULL DEFAULT NOW() -- or CURRENT_TIMESTAMP );

Notice that CURRENT_TIMESTAMP and CURRENT_TIMESTAMP() are synonyms for NOW() so you can use them interchangeably.

Second, insert a new row into the tmp table without specifying the value for the created_on column:

INSERT INTO tmp(title) VALUES('Test NOW() function');

Third, query the data from the tmp table:

SELECT * FROM tmp;

The value of the created_on a column has been updated to the current date and time at which the INSERT statement executed.

In this tutorial, we have introduced you to MySQL NOW() a function that returns the current date and time at which the statement was executed.

Reactions

Post a Comment

0 Comments

close