Table of Contents
MySQL date and time Extract (select) function.
MySQL date and time calculation function
MySQL 日期转换函数、时间转换函数
MySQL 时间戳(Timestamp)函数
MySQL 时区(timezone)转换函数convert_tz(dt,from_tz,to_tz)
Home Database Mysql Tutorial How to get the current time and timestamp in MySQL

How to get the current time and timestamp in MySQL

Aug 13, 2021 am 09:42 AM

MySQL is the most popular relational database management system. In terms of WEB applications, MySQL is one of the best RDBMS application software. In this introduction, you will quickly master the MySQL method of obtaining the current time and timestamp, and use the MySQL database easily.

How to get the current time and timestamp in MySQL

Get the current date and time (date time) function: now()

MySQL> select now();
+———————+
| now() |
+———————+
| 2013-04-08 20:56:19 |
+———————+

In addition to the now() function, you can get the current In addition to date and time, MySQL also has the following functions:

current_timestamp()
,current_timestamp,localtime()
,localtime
,localtimestamp — (v4.0.6)
,localtimestamp() — (v4.0.6)

These date and time functions are equivalent to now(). Since the now() function is short and easy to remember, it is recommended to always use now() instead of the functions listed above.

Get the current date and time (date time) function: sysdate()

sysdate() date and time function is similar to now(), the difference is : now() gets the value when execution starts, sysdate() gets the value dynamically when the function is executed. You can understand it by looking at the following example:

mysql> select now(), sleep(3), now();
+———————+———-+———————+
| now() | sleep(3) | now() |
+———————+———-+———————+
| 2013-04-08 20:57:46 | 0 | 2013-04-08 20:57:46 |
+———————+———-+———————+
mysql> select sysdate(), sleep(3), sysdate();
+———————+———-+———————+
| sysdate() | sleep(3) | sysdate() |
+———————+———-+———————+
| 2013-04-08 20:58:47 | 0 | 2013-04-08 20:58:50 |
+———————+———-+———————+

You can see that although it sleeps for 3 seconds in the middle, the time values ​​obtained twice by the now() function are the same; the time values ​​obtained twice by the sysdate() function are different. 3 seconds. MySQL Manual describes sysdate() like this: Return the time at which the function executes.

sysdate() date and time function, rarely used in general.

Get the current date (date) function: curdate()

mysql> select curdate();
+————+
| curdate() |
+————+
| 2013-04-08 |
+————+

Among them, the following two date functions are equivalent to curdate():

current_date()
,current_date

Get the current time (time) function: curtime()

mysql> select curtime();
+———–+
| curtime() |
+———–+
| 21:00:11 |
+———–+

Among them, the following two time functions are equivalent to curtime():

current_time()
,current_time

Get Current UTC date and time functions: utc_date(), utc_time(), utc_timestamp()

mysql> select utc_timestamp(), utc_date(), utc_time(),now();
+———————+————+————+———————+
| utc_timestamp() | utc_date() | utc_time() | now() |
+———————+————+————+———————+
| 2013-04-08 13:01:32 | 2013-04-08 | 13:01:32 |2013-04-08 21:01:32 |
+———————+————+————+———————+

Because our country is located in the East Eighth Time Zone, local time = UTC time 8 hours. UTC time is very useful when the business involves multiple countries and regions.

MySQL date and time Extract (select) function.

1. Select each part of the date and time: date, time, year, quarter, month, day, hour, minute, second, microsecond

set @dt = ’2008-09-10 07:15:30.123456′;
select date(@dt); — 2008-09-10
select time(@dt); — 07:15:30.123456
select year(@dt); — 2008
select quarter(@dt); — 3
select month(@dt); — 9
select week(@dt); — 36
select day(@dt); — 10
select hour(@dt); — 7
select minute(@dt); — 15
select second(@dt); — 30
select microsecond(@dt); — 123456

2. MySQL Extract() function can achieve similar functions as above:

et @dt = ’2008-09-10 07:15:30.123456′;
select extract(year from @dt); — 2008
select extract(quarter from @dt); — 3
select extract(month from @dt); — 9
select extract(week from @dt); — 36
select extract(day from @dt); — 10
select extract(hour from @dt); — 7
select extract(minute from @dt); — 15
select extract(second from @dt); — 30
select extract(microsecond from @dt); — 123456select extract(year_month from @dt); — 200809
select extract(day_hour from @dt); — 1007
select extract(day_minute from @dt); — 100715
select extract(day_second from @dt); — 10071530
select extract(day_microsecond from @dt); — 10071530123456
select extract(hour_minute from @dt); — 715
select extract(hour_second from @dt); — 71530
select extract(hour_microsecond from @dt); — 71530123456
select extract(minute_second from @dt); — 1530
select extract(minute_microsecond from @dt); — 1530123456
select extract(second_microsecond from @dt); — 30123456

MySQL Extract() function has all the functions except date() and time(). . It also has functions such as selecting ‘day_microsecond’. Note that instead of just selecting day and microsecond, you select from the day part of the date to the microsecond part. It's tough enough!

The only bad thing about the MySQL Extract() function is that you need to hit the keyboard a few times.

3. MySQL dayof... function: dayofweek(), dayofmonth(), dayofyear()

Return date parameters respectively, in a week, a month, and a year s position.

set @dt = ’2008-08-08′;
select dayofweek(@dt); — 6
select dayofmonth(@dt); — 8
select dayofyear(@dt); — 221

The date '2008-08-08′ is the 6th day of the week (1 = Sunday, 2 = Monday, …, 7 = Saturday); the 8th day of January; the year Day 221.

4. MySQL week... functions: week(), weekofyear(), dayofweek(), weekday(), yearweek()

set @dt = ’2008-08-08′;
select week(@dt); — 31
select week(@dt,3); — 32
select weekofyear(@dt); — 32
select dayofweek(@dt); — 6
select weekday(@dt); — 4
select yearweek(@dt); — 200831

MySQL week () function can have two parameters, please refer to the manual for details. Weekofyear() is the same as week(), both of which calculate the week of the year when "a certain day" is located. weekofyear(@dt) is equivalent to week(@dt,3).

MySQL weekday() function is similar to dayofweek(), both return the position of "someday" in the week. The difference lies in the reference standard, weekday: (0 = Monday, 1 = Tuesday, …, 6 = Sunday); dayofweek: (1 = Sunday, 2 = Monday, …, 7 = Saturday)

MySQL yearweek () function, returns year(2008) week position(31).

5. MySQL returns the name of the week and month: dayname(), monthname()

set @dt = ’2008-08-08′;
select dayname(@dt); — Friday
select monthname(@dt); — August

Thinking about how to return the Chinese name?

6. MySQL last_day() function: Returns the last day of the month.

select last_day(’2008-02-01′); — 2008-02-29
select last_day(’2008-08-08′); — 2008-08-31

MySQL last_day() function is very useful. For example, if I want to get the number of days in the current month, I can calculate it like this:

mysql> select now(), day(last_day(now())) as days;
+———————+——+
| now() | days |
+———————+——+
| 2013-04-08 21:03:14 | 30 |
+———————+——+

MySQL date and time calculation function

1. MySQL adds a time interval to the date: date_add()

set @dt = now();
select date_add(@dt, interval 1 day); — add 1 day
select date_add(@dt, interval 1 hour); — add 1 hour
select date_add(@dt, interval 1 minute); — …
select date_add(@dt, interval 1 second);
select date_add(@dt, interval 1 microsecond);
select date_add(@dt, interval 1 week);
select date_add(@dt, interval 1 month);
select date_add(@dt, interval 1 quarter);
select date_add(@dt, interval 1 year);
select date_add(@dt, interval -1 day); — sub 1 day

MySQL adddate(), addtime() functions can be replaced by date_add(). The following is an example of date_add() implementing the addtime() function:

mysql> set @dt = ’2008-08-09 12:12:33′;
mysql>
mysql> select date_add(@dt, interval ’01:15:30′ hour_second);
+——————————————+
| date_add(@dt, interval ’01:15:30′ hour_second) |
+——————————————+
| 2008-08-09 13:28:03 |
+——————————————+
mysql> select date_add(@dt, interval ’1 01:15:30′ day_second);
+——————————————+
| date_add(@dt, interval ’1 01:15:30′ day_second) |
+——————————————+
| 2008-08-10 13:28:03 |
+——————————————+

date_add() 函数,分别为 @dt 增加了“1小时 15分 30秒” 和 “1天 1小时 15分 30秒”。建议:总是使用 date_add() 日期时间函数来替代 adddate(), addtime()。

2. MySQL 为日期减去一个时间间隔:date_sub()

mysql> select date_sub(’1998-01-01 00:00:00′, interval ’1 1:1:1′ day_second);
+——————————————+
| date_sub(’1998-01-01 00:00:00′, interval ’1 1:1:1′ day_second) |
+——————————————+
| 1997-12-30 22:58:59 |
+——————————————+

MySQL date_sub() 日期时间函数 和 date_add() 用法一致,不再赘述。另外,MySQL 中还有两个函数 subdate(), subtime(),建议,用 date_sub() 来替代。

3. MySQL 另类日期函数:period_add(P,N), period_diff(P1,P2)

函数参数“P” 的格式为“YYYYMM” 或者 “YYMM”,第二个参数“N” 表示增加或减去 N month(月)。

MySQL period_add(P,N):日期加/减去N月。

mysql> select period_add(200808,2), period_add(20080808,-2)
+——————————————+
| period_add(200808,2) | period_add(20080808,-2) |
+——————————————+
| 200810 | 20080806 |
+——————————————+
MySQL period_diff(P1,P2):日期 P1-P2,返回 N 个月。
mysql> select period_diff(200808, 200801);
+——————————————+
| period_diff(200808, 200801) |
+——————————————+
| 7 |
+——————————————+

在 MySQL 中,这两个日期函数,一般情况下很少用到。

4. MySQL 日期、时间相减函数:datediff(date1,date2), timediff(time1,time2)

MySQL datediff(date1,date2):两个日期相减 date1 – date2,返回天数。
select datediff(’2008-08-08′, ’2008-08-01′); — 7
select datediff(’2008-08-01′, ’2008-08-08′); — -7
MySQL timediff(time1,time2):两个日期相减 time1 – time2,返回 time 差值。
select timediff(’2008-08-08 08:08:08′, ’2008-08-08 00:00:00′); — 08:08:08
select timediff(’08:08:08′, ’00:00:00′); — 08:08:08

注意:timediff(time1,time2) 函数的两个参数类型必须相同。

MySQL 日期转换函数、时间转换函数

1. MySQL (时间、秒)转换函数:time_to_sec(time), sec_to_time(seconds)

select time_to_sec(’01:00:05′); — 3605
select sec_to_time(3605); — ’01:00:05′

2. MySQL (日期、天数)转换函数:to_days(date), from_days(days)

select to_days(’0000-00-00′); — 0
select to_days(’2008-08-08′); — 733627
select from_days(0); — ’0000-00-00′
select from_days(733627); — ’2008-08-08′

3. MySQL Str to Date (字符串转换为日期)函数:str_to_date(str, format)

select str_to_date(’08/09/2008′, ‘%m/%d/%Y’); — 2008-08-09
select str_to_date(’08/09/08′ , ‘%m/%d/%y’); — 2008-08-09
select str_to_date(’08.09.2008′, ‘%m.%d.%Y’); — 2008-08-09
select str_to_date(’08:09:30′, ‘%h:%i:%s’); — 08:09:30
select str_to_date(’08.09.2008 08:09:30′, ‘%m.%d.%Y %h:%i:%s’); — 2008-08-09 08:09:30

可以看到,str_to_date(str,format) 转换函数,可以把一些杂乱无章的字符串转换为日期格式。另外,它也可以转换为时间。“format” 可以参看 MySQL 手册。

4. MySQL Date/Time to Str(日期/时间转换为字符串)函数:date_format(date,format), time_format(time,format)

mysql> select date_format(’2008-08-08 22:23:00′, ‘%W %M %Y’);
+——————————————+
| date_format(’2008-08-08 22:23:00′, ‘%W %M %Y’) |
+——————————————+
| Friday August 2008 |
+——————————————+
mysql> select date_format(’2008-08-08 22:23:01′, ‘%Y%m%d%H%i%s’);
+——————————————+
| date_format(’2008-08-08 22:23:01′, ‘%Y%m%d%H%i%s’) |
+——————————————+
| 20080808222301 |
+——————————————+
mysql> select time_format(’22:23:01′, ‘%H.%i.%s’);
+——————————————+
| time_format(’22:23:01′, ‘%H.%i.%s’) |
+——————————————+
| 22.23.01 |
+——————————————+

MySQL 日期、时间转换函数:date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式。它是 str_to_date(str,format) 函数的 一个逆转换。

5. MySQL 获得国家地区时间格式函数:get_format()

MySQL get_format() 语法:

get_format(date|time|datetime, ‘eur’|’usa’|’jis’|’iso’|’internal’

MySQL get_format() 用法的全部示例:

select get_format(date,’usa’) ; — ‘%m.%d.%Y’
select get_format(date,’jis’) ; — ‘%Y-%m-%d’
select get_format(date,’iso’) ; — ‘%Y-%m-%d’
select get_format(date,’eur’) ; — ‘%d.%m.%Y’
select get_format(date,’internal’) ; — ‘%Y%m%d’
select get_format(datetime,’usa’) ; — ‘%Y-%m-%d %H.%i.%s’
select get_format(datetime,’jis’) ; — ‘%Y-%m-%d %H:%i:%s’
select get_format(datetime,’iso’) ; — ‘%Y-%m-%d %H:%i:%s’
select get_format(datetime,’eur’) ; — ‘%Y-%m-%d %H.%i.%s’
select get_format(datetime,’internal’) ; — ‘%Y%m%d%H%i%s’
select get_format(time,’usa’) ; — ‘%h:%i:%s %p’
select get_format(time,’jis’) ; — ‘%H:%i:%s’
select get_format(time,’iso’) ; — ‘%H:%i:%s’
select get_format(time,’eur’) ; — ‘%H.%i.%s’
select get_format(time,’internal’) ; — ‘%H%i%s’

MySQL get_format() 函数在实际中用到机会的比较少。

6. MySQL 拼凑日期、时间函数:makdedate(year,dayofyear), maketime(hour,minute,second)

select makedate(2001,31); — ’2001-01-31′
select makedate(2001,32); — ’2001-02-01′
select maketime(12,15,30); — ’12:15:30′

MySQL 时间戳(Timestamp)函数

1. MySQL 获得当前时间戳函数:current_timestamp, current_timestamp()

mysql> select current_timestamp, current_timestamp();
+——————————————+
| current_timestamp | current_timestamp() |
+——————————————+
| 2008-08-09 23:22:24 | 2008-08-09 23:22:24 |
+——————————————+

2. MySQL (Unix 时间戳、日期)转换函数:

unix_timestamp(),
unix_timestamp(date),
from_unixtime(unix_timestamp),
from_unixtime(unix_timestamp,format)

下面是示例:

select unix_timestamp(); — 1218290027
select unix_timestamp(’2008-08-08′); — 1218124800
select unix_timestamp(’2008-08-08 12:30:00′); — 1218169800
select from_unixtime(1218290027); — ’2008-08-09 21:53:47′
select from_unixtime(1218124800); — ’2008-08-08 00:00:00′
select from_unixtime(1218169800); — ’2008-08-08 12:30:00′
select from_unixtime(1218169800, ‘%Y %D %M %h:%i:%s %x’); — ’2008 8th August 12:30:00 2008′

3. MySQL 时间戳(timestamp)转换、增、减函数:

timestamp(date) — date to timestamp
timestamp(dt,time) — dt + time
timestampadd(unit,interval,datetime_expr) –
timestampdiff(unit,datetime_expr1,datetime_expr2) –

请看示例部分:

select timestamp(’2008-08-08′); — 2008-08-08 00:00:00
select timestamp(’2008-08-08 08:00:00′, ’01:01:01′); — 2008-08-08 09:01:01
select timestamp(’2008-08-08 08:00:00′, ’10 01:01:01′); — 2008-08-18 09:01:01
select timestampadd(day, 1, ’2008-08-08 08:00:00′); — 2008-08-09 08:00:00
select date_add(’2008-08-08 08:00:00′, interval 1 day); — 2008-08-09 08:00:00
MySQL timestampadd() 函数类似于 date_add()。
select timestampdiff(year,’2002-05-01′,’2001-01-01′); — -1
select timestampdiff(day ,’2002-05-01′,’2001-01-01′); — -485
select timestampdiff(hour,’2008-08-08 12:00:00′,’2008-08-08 00:00:00′); — -12
select datediff(’2008-08-08 12:00:00′, ’2008-08-01 00:00:00′); — 7
MySQL timestampdiff() 函数就比 datediff() 功能强多了,datediff() 只能计算两个日期(date)之间相差的天数。

MySQL timestampdiff() 函数就比 datediff() 功能强多了,datediff() 只能计算两个日期(date)之间相差的天数。

MySQL 时区(timezone)转换函数convert_tz(dt,from_tz,to_tz)

select convert_tz(’2008-08-08 12:00:00′, ‘+08:00′, ‘+00:00′); — 2008-08-08 04:00:00
时区转换也可以通过 date_add, date_sub, timestampadd 来实现。
select date_add(’2008-08-08 12:00:00′, interval -8 hour); — 2008-08-08 04:00:00
select date_sub(’2008-08-08 12:00:00′, interval 8 hour); — 2008-08-08 04:00:00
select timestampadd(hour, -8, ’2008-08-08 12:00:00′); — 2008-08-08 04:00:00

相关学习推荐:mysql教程(视频)

The above is the detailed content of How to get the current time and timestamp in MySQL. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Establishing secure remote connections to a MySQL server Establishing secure remote connections to a MySQL server Jul 04, 2025 am 01:44 AM

TosecurelyconnecttoaremoteMySQLserver,useSSHtunneling,configureMySQLforremoteaccess,setfirewallrules,andconsiderSSLencryption.First,establishanSSHtunnelwithssh-L3307:localhost:3306user@remote-server-Nandconnectviamysql-h127.0.0.1-P3307.Second,editMyS

How to add the MySQL bin directory to the system PATH How to add the MySQL bin directory to the system PATH Jul 01, 2025 am 01:39 AM

To add MySQL's bin directory to the system PATH, it needs to be configured according to the different operating systems. 1. Windows system: Find the bin folder in the MySQL installation directory (the default path is usually C:\ProgramFiles\MySQL\MySQLServerX.X\bin), right-click "This Computer" → "Properties" → "Advanced System Settings" → "Environment Variables", select Path in "System Variables" and edit it, add the MySQLbin path, save it and restart the command prompt and enter mysql--version verification; 2.macOS and Linux systems: Bash users edit ~/.bashrc or ~/.bash_

Where does mysql workbench save connection information Where does mysql workbench save connection information Jun 26, 2025 am 05:23 AM

MySQLWorkbench stores connection information in the system configuration file. The specific path varies according to the operating system: 1. It is located in %APPDATA%\MySQL\Workbench\connections.xml in Windows system; 2. It is located in ~/Library/ApplicationSupport/MySQL/Workbench/connections.xml in macOS system; 3. It is usually located in ~/.mysql/workbench/connections.xml in Linux system or ~/.local/share/data/MySQL/Wor

Analyzing the MySQL Slow Query Log to Find Performance Bottlenecks Analyzing the MySQL Slow Query Log to Find Performance Bottlenecks Jul 04, 2025 am 02:46 AM

Turn on MySQL slow query logs and analyze locationable performance issues. 1. Edit the configuration file or dynamically set slow_query_log and long_query_time; 2. The log contains key fields such as Query_time, Lock_time, Rows_examined to assist in judging efficiency bottlenecks; 3. Use mysqldumpslow or pt-query-digest tools to efficiently analyze logs; 4. Optimization suggestions include adding indexes, avoiding SELECT*, splitting complex queries, etc. For example, adding an index to user_id can significantly reduce the number of scanned rows and improve query efficiency.

Performing logical backups using mysqldump in MySQL Performing logical backups using mysqldump in MySQL Jul 06, 2025 am 02:55 AM

mysqldump is a common tool for performing logical backups of MySQL databases. It generates SQL files containing CREATE and INSERT statements to rebuild the database. 1. It does not back up the original file, but converts the database structure and content into portable SQL commands; 2. It is suitable for small databases or selective recovery, and is not suitable for fast recovery of TB-level data; 3. Common options include --single-transaction, --databases, --all-databases, --routines, etc.; 4. Use mysql command to import during recovery, and can turn off foreign key checks to improve speed; 5. It is recommended to test backup regularly, use compression, and automatic adjustment.

Handling NULL Values in MySQL Columns and Queries Handling NULL Values in MySQL Columns and Queries Jul 05, 2025 am 02:46 AM

When handling NULL values ​​in MySQL, please note: 1. When designing the table, the key fields are set to NOTNULL, and optional fields are allowed NULL; 2. ISNULL or ISNOTNULL must be used with = or !=; 3. IFNULL or COALESCE functions can be used to replace the display default values; 4. Be cautious when using NULL values ​​directly when inserting or updating, and pay attention to the data source and ORM framework processing methods. NULL represents an unknown value and does not equal any value, including itself. Therefore, be careful when querying, counting, and connecting tables to avoid missing data or logical errors. Rational use of functions and constraints can effectively reduce interference caused by NULL.

Resetting the root password for MySQL server Resetting the root password for MySQL server Jul 03, 2025 am 02:32 AM

To reset the root password of MySQL, please follow the following steps: 1. Stop the MySQL server, use sudosystemctlstopmysql or sudosystemctlstopmysqld; 2. Start MySQL in --skip-grant-tables mode, execute sudomysqld-skip-grant-tables&; 3. Log in to MySQL and execute the corresponding SQL command to modify the password according to the version, such as FLUSHPRIVILEGES;ALTERUSER'root'@'localhost'IDENTIFIEDBY'your_new

how to check mysql version on windows command prompt how to check mysql version on windows command prompt Jul 01, 2025 am 01:41 AM

To check the MySQL version, you can use the following methods in the Windows command prompt: 1. Use the command line to view directly, enter mysql--version or mysql-V; 2. After logging in to the MySQL client, execute SELECTVERSION();; 3. Manually search through the installation path, switch to the MySQL bin directory and run mysql.exe--version. These methods are suitable for different scenarios, the first two are most commonly used, and the third one is suitable for situations where environment variables are not configured.

See all articles