首页 > 数据库 >Mysql 中的日期时间函数汇总

Mysql 中的日期时间函数汇总

时间:2023-02-04 11:33:17浏览次数:46  
标签:set 函数 mysql 汇总 Mysql date NOW row


日期和时间函数

MySQL中内置了大量的日期和时间函数,能够灵活、方便地处理日期和时间数据,本节就简单介绍一下MySQL中内置的日期和时间函数。

1 CURDATE()函数

CURDATE()函数用于返回当前日期,只包含年、月、日部分,格式为YYYY-MM-DD。使用示例如下:


mysql> SELECT CURDATE();
+------------+
| CURDATE() |
+------------+
| 2019-12-11 |
+------------+
1 row in set (0.00 sec)

CURRENT_DATE()函数的作用与CURDATE()函数相同,不再赘述。

2 CURTIME()函数

CURTIME()函数用于返回当前时间,只包含时、分、秒部分,格式为HH:MM:SS。使用示例如下:


mysql> SELECT CURTIME();
+-----------+
| CURTIME() |
+-----------+
| 11:27:44 |
+-----------+
1 row in set (0.00 sec)

CURRENT_TIME()函数的作用与CURTIME函数相同,不再赘述。

3 NOW()函数

NOW()函数用于返回当前日期和时间,包含年、月、日、时、分、秒,格式为YYYY-MM-DD HH:MM:SS。使用示例如下:


mysql> SELECT NOW();
+---------------------+
| NOW() |
+---------------------+
| 2019-12-15 11:29:22 |
+---------------------+
1 row in set (0.00 sec)

CURRENT_TIMESTAMP()函数、LOCALTIME()函数、LOCALTIMESTAMP()函数、SYSDATE()函数的作用与NOW()函数相同,不再赘述。

4 UNIX_TIMESTAMP(date)函数

将date转化为UNIX时间戳。使用示例如下:


mysql> SELECT UNIX_TIMESTAMP(now());
+-----------------------+
| UNIX_TIMESTAMP(now()) |
+-----------------------+
| 1576380910 |
+-----------------------+
1 row in set (0.01 sec)
mysql> SELECT UNIX_TIMESTAMP(CURDATE());
+---------------------------+
| UNIX_TIMESTAMP(CURDATE()) |
+---------------------------+
| 1576339200 |
+---------------------------+
1 row in set (0.00 sec)
mysql> SELECT UNIX_TIMESTAMP(CURTIME());
+---------------------------+
| UNIX_TIMESTAMP(CURTIME()) |
+---------------------------+
| 1576380969 |
+---------------------------+
1 row in set (0.00 sec)

5 FROM_UNIXTIME(timestamp)函数

FROM_UNIXTIME(timestamp)函数将UNIX时间戳转化为日期时间,格式为YYYY-MM-DD HH:MM:SS,与UNIX_TIMESTAMP(date)函数互为反函数。使用示例如下:


mysql> SELECT FROM_UNIXTIME(1576380910);
+---------------------------+
| FROM_UNIXTIME(1576380910) |
+---------------------------+
| 2019-12-15 11:35:10 |
+---------------------------+
1 row in set (0.00 sec)

6 UTC_DATE()函数

UTC_DATE()函数用于返回UTC日期。使用示例如下:


mysql> SELECT UTC_DATE();
+------------+
| UTC_DATE() |
+------------+
| 2019-12-15 |
+------------+
1 row in set (0.00 sec)

也可以返回YYYYMMDD格式的日期。使用示例如下:


mysql> SELECT UTC_DATE()+0;
+--------------+
| UTC_DATE()+0 |
+--------------+
| 20191215 |
+--------------+
1 row in set (0.00 sec)

7 UTC_TIME()函数

UTC_TIME()函数用于返回UTC时间。使用示例如下:


mysql> SELECT UTC_TIME();
+------------+
| UTC_TIME() |
+------------+
| 06:39:00 |
+------------+
1 row in set (0.00 sec)

8 YEAR(date)函数

YEAR(date)函数用于返回日期所在的年份,取值返回为1970~2069。使用示例如下:


mysql> SELECT YEAR(NOW());
+-------------+
| YEAR(NOW()) |
+-------------+
| 2019 |
+-------------+
1 row in set (0.00 sec)

注意:00~69会被转化为2000~2069,70~99会被转化为1970~1999。

9 MONTH(date)函数

MONTH(date)函数用于返回日期对应的月份,取值返回为1~12。使用示例如下:


mysql> SELECT MONTH(NOW());
+--------------+
| MONTH(NOW()) |
+--------------+
| 12 |
+--------------+
1 row in set (0.00 sec)

10 MONTHNAME(date)函数

MONTHNAME(date)函数用于返回日期所在月份的英文名称。使用示例如下:


mysql> SELECT MONTHNAME(NOW());
+------------------+
| MONTHNAME(NOW()) |
+------------------+
| December |
+------------------+
1 row in set (0.00 sec)

11 DAY(date)函数

DAY(date)函数只返回日期。使用示例如下:


mysql> SELECT DAY(NOW());
+------------+
| DAY(NOW()) |
+------------+
| 15 |
+------------+
1 row in set (0.00 sec)

12 DAYNAME(date)函数

DAYNAME(date)函数用于返回日期对应星期的英文名称。使用示例如下:


mysql> SELECT DAYNAME(NOW());
+----------------+
| DAYNAME(NOW()) |
+----------------+
| Sunday |
+----------------+
1 row in set (0.00 sec)
mysql> SELECT DAYNAME('2020-01-01');
+-----------------------+
| DAYNAME('2020-01-01') |
+-----------------------+
| Wednesday |
+-----------------------+
1 row in set (0.00 sec)

13 DAYOFWEEK(date)函数

DAYOFWEEK(date)函数用于返回日期对应的一周中的索引值。1表示星期日,2表示星期一,以此类推。使用示例如下:


mysql> SELECT DAYOFWEEK(NOW());
+------------------+
| DAYOFWEEK(NOW()) |
+------------------+
| 1 |
+------------------+
1 row in set (0.00 sec)
mysql> SELECT DAYOFWEEK('2020-01-01');
+-------------------------+
| DAYOFWEEK('2020-01-01') |
+-------------------------+
| 4 |
+-------------------------+
1 row in set (0.00 sec)

14 WEEKDAY(date)函数

WEEKDAY(date)函数返回日期对应的一周中的索引值。0表示星期一,1表示星期二,以此类推。使用示例如下:


mysql> SELECT WEEKDAY(NOW());
+----------------+
| WEEKDAY(NOW()) |
+----------------+
| 6 |
+----------------+
1 row in set (0.00 sec)
mysql> SELECT WEEKDAY('2020-01-01');
+-----------------------+
| WEEKDAY('2020-01-01') |
+-----------------------+
| 2 |
+-----------------------+
1 row in set (0.00 sec)

15 WEEK(date)函数

WEEK(date)函数返回给定日期是一年中的第几周。使用示例如下:


mysql> SELECT WEEK(NOW());
+-------------+
| WEEK(NOW()) |
+-------------+
| 50 |
+-------------+
1 row in set (0.00 sec)

16 WEEKOFYEAR(date)函数

WEEKOFYEAR(date)函数返回日期位于一年中的第几周。使用示例如下:


mysql> SELECT WEEKOFYEAR(NOW());
+-------------------+
| WEEKOFYEAR(NOW()) |
+-------------------+
| 50 |
+-------------------+
1 row in set (0.00 sec)

17 DAYOFYEAR(date)函数

DAYOFYEAR(date)函数返回日期是一年中的第几天。使用示例如下:


mysql> SELECT DAYOFYEAR(NOW());
+------------------+
| DAYOFYEAR(NOW()) |
+------------------+
| 349 |
+------------------+
1 row in set (0.00 sec)

18 DAYOFMONTH(date)函数

DAYOFMONTH(date)函数返回日期位于所在月份的第几天。使用示例如下:


mysql> SELECT DAYOFMONTH(NOW());
+-------------------+
| DAYOFMONTH(NOW()) |
+-------------------+
| 15 |
+-------------------+
1 row in set (0.00 sec)

19 QUARTER(date)函数

QUARTER(date)函数返回日期对应的季度,范围为1~4。使用示例如下:


mysql> SELECT QUARTER(NOW());
+----------------+
| QUARTER(NOW()) |
+----------------+
| 4 |
+----------------+
1 row in set (0.00 sec)

20 HOUR(time)函数

HOUR(time)函数返回指定时间的小时。使用示例如下:


mysql> SELECT HOUR(NOW());
+-------------+
| HOUR(NOW()) |
+-------------+
| 11 |
+-------------+
1 row in set (0.00 sec)

21 MINUTE(time)函数

MINUTE(time)函数返回指定时间的分钟,取值范围0~59。使用示例如下:


mysql> SELECT MINUTE(NOW());
+---------------+
| MINUTE(NOW()) |
+---------------+
| 45 |
+---------------+
1 row in set (0.00 sec)

22 SECOND(time)函数

SECOND(time)函数返回指定时间的秒数,取值范围0~59。使用示例如下:


mysql> SELECT SECOND(NOW());
+---------------+
| SECOND(NOW()) |
+---------------+
| 22 |
+---------------+
1 row in set (0.00 sec)

23 EXTRACT(type FROM date)函数

EXTRACT(type FROM date)函数返回指定日期中特定的部分,type指定返回的值。其中,type的取值如表11-1所示。

表11-1 EXTRACT(type FROM date)函数中type的取值与含义



Mysql 中的日期时间函数汇总_mysql



Mysql 中的日期时间函数汇总_函数返回_02


注意:当EXTRACT(type FROM date)函数中的type取值为MINUTE_SECOND时,表示返回分钟和秒值,当date中的分钟为12,秒为12时,返回的结果为1212。也就是说,将分钟后面直接拼接上秒值。type取值为其他带有下划线的值时,也遵循同样的规律。

使用示例如下:


mysql> SELECT EXTRACT(HOUR_MINUTE FROM NOW());
+---------------------------------+
| EXTRACT(HOUR_MINUTE FROM NOW()) |
+---------------------------------+
| 2142 |
+---------------------------------+
1 row in set (0.00 sec)

24 TIME_TO_SEC(time)函数

TIME_TO_SEC(time)函数将time转化为秒并返回结果值。转化的公式为:小时*3600+分钟*60+秒。使用示例如下:


mysql> SELECT TIME_TO_SEC(NOW());
+--------------------+
| TIME_TO_SEC(NOW()) |
+--------------------+
| 78774 |
+--------------------+
1 row in set (0.00 sec)

25 SEC_TO_TIME(seconds)函数

SEC_TO_TIME(seconds)函数将seconds描述转化为包含小时、分钟和秒的时间。使用示例如下:


mysql> SELECT SEC_TO_TIME(78774);
+--------------------+
| SEC_TO_TIME(78774) |
+--------------------+
| 21:52:54 |
+--------------------+
1 row in set (0.12 sec)

26 DATE_ADD(date,INTERVAL expr type)函数

DATE_ADD(date,INTERVAL expr type)函数返回与date相差INTERVAL时间间隔的日期,本质上是日期的加操作。该函数中的type是间隔的类型,间隔类型如表11-2所示。

表11-2 DATE_ADD(date,INTERVAL expr type)函数中type的取值



Mysql 中的日期时间函数汇总_函数返回_03


使用示例如下:


mysql> SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);
+---------------------------------+
| DATE_ADD(NOW(), INTERVAL 1 DAY) |
+---------------------------------+
| 2019-12-16 22:04:36 |
+---------------------------------+
1 row in set (0.00 sec)

ADDDATE(date,INTERVAL expr type)函数与DATE_ADD(date,INTERVAL expr type)函数的作用相同,不再赘述。

27 DATE_SUB(date,INTERVAL expr type)函数

DATE_SUB(date,INTERVAL expr type)函数返回与date相差INTERVAL时间间隔的日期,本质上是日期的减操作,其中type的取值见表11-2。使用示例如下:


mysql> SELECT DATE_SUB(NOW(), INTERVAL 1 DAY);
+---------------------------------+
| DATE_SUB(NOW(), INTERVAL 1 DAY) |
+---------------------------------+
| 2019-12-14 22:09:10 |
+---------------------------------+
1 row in set (0.00 sec)

SUBDATE(date,INTERVAL expr type)函数与DATE_SUB(date,INTERVAL expr type)函数作用相同,不再赘述。

注意:DATE_ADD、ADDDATE、DATE_SUB和SUBDATE这4个函数均可以指定负值。

28 ADDTIME(time1,time2)函数

ADDTIME(time1,time2)函数返回time1加上time2的时间。其中,time2是一个表达式,也可以是一个数字,当time2为一个数字时,代表的是秒。使用示例如下:


mysql> SELECT ADDTIME(NOW(), 50);
+---------------------+
| ADDTIME(NOW(), 50) |
+---------------------+
| 2019-12-15 22:17:47 |
+---------------------+
1 row in set (0.00 sec)
mysql> SELECT ADDTIME(NOW(), '1:1:1');
+-------------------------+
| ADDTIME(NOW(), '1:1:1') |
+-------------------------+
| 2019-12-15 23:18:46 |
+-------------------------+
1 row in set (0.00 sec)

ADDTIME(NOW(),'1:1:1')表示的含义为返回为当前时间加上1小时1分1秒之后的时间。

ADDTIME(time1,time2)函数中的time2的值也可以为负值。


mysql> SELECT ADDTIME(NOW(), '-1:-1:-1');
+----------------------------+
| ADDTIME(NOW(), '-1:-1:-1') |
+----------------------------+
| 2019-12-15 22:19:29 |
+----------------------------+
1 row in set, 1 warning (0.01 sec)

ADDTIME(NOW(),'-1:-1:-1')表示的含义为返回当前时间减去1小时1分1秒之后的时间。

29 SUBTIME(time1,time2)函数

SUBTIME(time1,time2)函数返回time1减去time2后的时间。其中,time2是一个表达式,也可以是一个数字,当time2为一个数字时,代表的是秒。使用示例如下:


mysql> SELECT SUBTIME(NOW(), 50);   
+---------------------+
| SUBTIME(NOW(), 50) |
+---------------------+
| 2019-12-15 22:23:35 |
+---------------------+
1 row in set (0.00 sec)
mysql> SELECT SUBTIME(NOW(), '1:1:1');
+-------------------------+
| SUBTIME(NOW(), '1:1:1') |
+-------------------------+
| 2019-12-15 21:23:50 |
+-------------------------+
1 row in set (0.00 sec)
mysql> SELECT SUBTIME(NOW(), '-1:-1:-1');
+----------------------------+
| SUBTIME(NOW(), '-1:-1:-1') |
+----------------------------+
| 2019-12-15 22:25:11 |
+----------------------------+
1 row in set, 1 warning (0.00 sec)

30 DATEDIFF(date1,date2)函数

DATEDIFF(date1,date2)函数计算两个日期之间相差的天数。使用示例如下:


mysql> SELECT DATEDIFF(NOW(), '1970-01-01');
+-------------------------------+
| DATEDIFF(NOW(), '1970-01-01') |
+-------------------------------+
| 18245 |
+-------------------------------+
1 row in set (0.00 sec)

31 FROM_DAYS(N)函数

FROM_DAYS(N)函数返回从0000年1月1日起,N天以后的日期。使用示例如下:


mysql> SELECT FROM_DAYS(366);
+----------------+
| FROM_DAYS(366) |
+----------------+
| 0001-01-01 |
+----------------+
1 row in set (0.00 sec)

32 LAST_DAY(date)函数

LAST_DAY(date)函数返回date所在月份的最后一天的日期。使用示例如下:


mysql> SELECT LAST_DAY(NOW());
+-----------------+
| LAST_DAY(NOW()) |
+-----------------+
| 2019-12-31 |
+-----------------+
1 row in set (0.00 sec)

33 MAKEDATE(year,n)函数

MAKEDATE(year,n)函数针对给定年份与所在年份中的天数返回一个日期。使用示例如下:


mysql> SELECT MAKEDATE(2020,1);
+------------------+
| MAKEDATE(2020,1) |
+------------------+
| 2020-01-01 |
+------------------+
1 row in set (0.00 sec)
mysql> SELECT MAKEDATE(2020,32);
+-------------------+
| MAKEDATE(2020,32) |
+-------------------+
| 2020-02-01 |
+-------------------+
1 row in set (0.00 sec)

34 MAKETIME(hour,minute,second)函数

将给定的小时、分钟和秒组合成时间并返回。使用示例如下:


mysql> SELECT MAKETIME(1,1,1);
+-----------------+
| MAKETIME(1,1,1) |
+-----------------+
| 01:01:01 |
+-----------------+
1 row in set (0.00 sec)

35 PERIOD_ADD(time,n)函数

PERIOD_ADD(time,n)函数返回time加上n后的时间。使用示例如下:


mysql> SELECT PERIOD_ADD(20200101010101,1);
+------------------------------+
| PERIOD_ADD(20200101010101,1) |
+------------------------------+
| 20200101010102 |
+------------------------------+
1 row in set (0.00 sec)

36 TO_DAYS(date)函数

TO_DAYS(date)函数返回日期date距离0000年1月1日的天数。使用示例如下:


mysql> SELECT TO_DAYS(NOW());
+----------------+
| TO_DAYS(NOW()) |
+----------------+
| 737773 |
+----------------+
1 row in set (0.00 sec)

37 DATE_FORMAT(date,format)函数

DATE_FORMAT(date,format)函数按照指定的格式format来格式化日期date。其中,format常用的格式符如表11-3所示。

表11-3 DATE_FORMAT(date,format)函数中format常用的格式符



Mysql 中的日期时间函数汇总_时间函数_04



Mysql 中的日期时间函数汇总_mysql_05


使用示例如下:


mysql> SELECT DATE_FORMAT(NOW(), '%H:%i:%s');
+--------------------------------+
| DATE_FORMAT(NOW(), '%H:%i:%s') |
+--------------------------------+
| 22:57:34 |
+--------------------------------+
1 row in set (0.00 sec)

38 TIME_FORMAT(time,format)函数

TIME_FORMAT(time,format)函数按照指定的格式format来格式化日期date。其中,format常用的格式符见表11-3。使用示例如下:


mysql> SELECT TIME_FORMAT(NOW(), '%H:%i:%s');    
+--------------------------------+
| TIME_FORMAT(NOW(), '%H:%i:%s') |
+--------------------------------+
| 22:59:40 |
+--------------------------------+
1 row in set (0.00 sec)

39 GET_FORMAT(date_type,format_type)函数

GET_FORMAT(date_type,format_type)函数返回日期字符串的显示格式,其中date_type表示日期类型,format_type表示格式化类型。日期类型与格式化类型的取值如表11-4所示。

表11-4 GET_FORMAT函数返回的格式化字符串



Mysql 中的日期时间函数汇总_时间函数_06


使用示例如下:


mysql> SELECT GET_FORMAT(DATE, 'USA');
+-------------------------+
| GET_FORMAT(DATE, 'USA') |
+-------------------------+
| %m.%d.%Y |
+-------------------------+
1 row in set (0.00 sec)

40 STR_TO_DATE(str,format)函数

STR_TO_DATE(str,format)函数将字符串str按照format格式转化为日期或时间。其中,format的取值见表11-3。使用示例如下:


mysql> SELECT STR_TO_DATE('2020-01-01 00:00:00','%Y-%m-%d'); 
+-----------------------------------------------+
| STR_TO_DATE('2020-01-01 00:00:00','%Y-%m-%d') |
+-----------------------------------------------+
| 2020-01-01 |
+-----------------------------------------------+
1 row in set, 1 warning (0.00 sec)

标签:set,函数,mysql,汇总,Mysql,date,NOW,row
From: https://blog.51cto.com/zhaoyanfei/6037010

相关文章

  • 虚函数与多态
    虚函数:C++中的虚函数的作用主要是实现了多态的机制。虚函数是一种在基类定义为virtual的函数,并在一个或多个派生类中再定义的函数。虚函数的特点是,只要定义一个基类的指针,就......
  • c++函数
    一,函数基础1.函数一般用一个名字表示,即函数名。返回类型,函数名,参数列表,和函数体构成了函数定义。函数定义的语法形式类型说明符 函数名(含类型说明的形式参数表){ 函数体}......
  • 模拟实现不受限制的字符串函数--C语言版
    C语言中提供了许多十分好用的库函数,一旦我们掌握了它们,我们使用C语言写代码就会变得更加得心应手。1.strlenstrlen函数就是计算字符串的长度的,它会一直读取到\0,它的返回值就......
  • linux中mysql安装
    #首先通过yum下载wget命令1.yum-yinstallwget#通过wget下载MySQL存储库2.wgethttps://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm3.rpm-Uvhmy......
  • 【c/c++】isdigit()函数
    isdigit函数isdigit是计算机C(C++)语言中的一个函数,主要用于检查其参数是否为十进制数字字符。函数定义:​​intisdigit(intc)​​​函数说明:​​检查参数是否为十进制......
  • #yyds干货盘点#再聊JS函数柯里化
    一、定义:柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。通过一个简单的例子......
  • Jmeter-重要的函数
     ${__counter(,)}计数器-加1的功能疑问:假如加2,使用计数器    -计数器超过最大值后重新开始计数重点:最大值,如果运行结果超过最大值时,又会从起始值开始循环每个......
  • mysql-数据备份
    1、准备一个mysql数据库1、查看mysql数据库可以看到此时mysql中没有测试数据库bkdatabase。]#/usr/local/mysql-5.7.28-el7-x86_64/bin/mysql-uroot-pmysql>sho......
  • Failed to load driver class com.mysql.cj.jdbc.Driver in either of HikariConfig c
    使用SpringDataJPA访问数据时出现该错误,具体报错信息如下:ErrorstartingApplicationContext.Todisplaytheconditionsreportre-runyourapplicationwith'debug......
  • MySQL创建表的三种方式
    创建表的三种方式通过create语句直接创建语法:create[TEMPORARY]table[IFNOTEXISTS]table_name( col_namecolumn_defination[constrant][NOTNULL|NULL][D......