In MySQL, the CURRENT_TIMESTAMP() function is used to retrieve the current date and time, according to the server's system clock. It's essentially the same as NOW() in MySQL. The value returned is a DATETIME or TIMESTAMP data type, depending on the context in which it is used.
Syntax:
CURRENT_TIMESTAMP()
Examples of Usage:
1. Getting the Current Date and Time:
SELECT CURRENT_TIMESTAMP();
This query returns the current date and time in the format YYYY-MM-DD HH:MM:SS. For example:
2024-12-23 14:30:05
2. Inserting the Current Timestamp into a Table:
CREATE TABLE example_table (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO example_table (name) VALUES ('John Doe');
In this example, the created_at field is automatically populated with the current timestamp when a new row is inserted.
3. Using CURRENT_TIMESTAMP in Queries:
You can use CURRENT_TIMESTAMP() in your WHERE clause, for example:
SELECT * FROM orders
WHERE order_date > CURRENT_TIMESTAMP() - INTERVAL 1 DAY;
This will retrieve all orders made in the last 24 hours.
4. Formatting the Current Timestamp:
You can also use DATE_FORMAT to customize how the timestamp is displayed:
SELECT DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d %H:%i:%s');
This will format the current timestamp to YYYY-MM-DD HH:MM:SS.
Differences from NOW() and SYSDATE():
CURRENT_TIMESTAMP()andNOW()return the same value, which is the current date and time.SYSDATE()returns the current timestamp, but it is evaluated at the exact time the function is called, whereasCURRENT_TIMESTAMP()andNOW()may be evaluated at the start of the query execution (depending on the context, such as in aSELECTquery).
Default Behavior in TIMESTAMP Column:
When you define a column of type TIMESTAMP or DATETIME and set its default value to CURRENT_TIMESTAMP, MySQL will automatically populate this column with the current timestamp when a row is inserted, if no value is explicitly provided for that column.
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
last_login TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
In this case, last_login will be automatically set to the current timestamp when a new record is inserted.
Time Zone Considerations:
CURRENT_TIMESTAMP() will return the timestamp in the time zone of the MySQL server, so if the server is configured in a different time zone than your application, the results may differ. To handle time zone issues, you can adjust for time zones manually or configure MySQL to use a specific time zone.
SET time_zone = '+00:00'; -- Set the time zone to UTC
SELECT CURRENT_TIMESTAMP(); -- Will return the UTC time
Conclusion:
The CURRENT_TIMESTAMP() function is a useful tool in MySQL for working with the current date and time, and it can be used in a variety of scenarios such as inserting timestamps, filtering records by time, or setting default values for DATETIME or TIMESTAMP columns.
No comments:
Post a Comment