各位用户为了找寻关于MySQL日期与时间函数的使用汇总的资料费劲了很多周折。这里教程网为您整理了关于MySQL日期与时间函数的使用汇总的相关资料,仅供查阅,以下为您介绍关于MySQL日期与时间函数的使用汇总的详细内容
本文基于MySQL8.0
本文介绍MySQL关于日期和时间操作的函数。
日期和时间函数
来看一看MySQL常用日期和时间函数的示例。
获得当前日期时间
CURDATE()
以“YYYY-MM-DD”或YYYYMMDD格式返回当前日期,具体取决于函数是在字符串上下文中使用还是在数字上下文中使用。
? 1 2 3 4mysql>
SELECT
CURDATE();
->
'2008-06-13'
mysql>
SELECT
CURDATE() + 0;
-> 20080613
CURTIME([fsp])
以'hh:mm:ss'或hhmmss格式返回当前时间,具体取决于函数是在字符串上下文中使用还是在数字上下文中使用。该值以会话时区表示。
如果指定的fsp精度是从0到6的小数位数,则指定从0到6的小数精度。
? 1 2 3 4mysql>
SELECT
CURTIME();
->
'23:50:26'
mysql>
SELECT
CURTIME() + 0;
-> 235026.000000
NOW([fsp])
以'YYYY-MM-DD hh:MM:ss'或YYYYMMDDhhmmss格式返回当前日期和时间,具体取决于函数是在字符串上下文中使用还是在数字上下文中使用。该值以会话时区表示。
? 1 2 3 4mysql>
SELECT
NOW();
->
'2007-12-15 23:50:26'
mysql>
SELECT
NOW() + 0;
-> 20071215235026.000000
时间日期格式转化
同一个日期时间会有多种不同的表示方式,有的时候需要在不同格式之间相互转换。在MySQL中用的是date_format()函数:
DATE_FORMAT(date,format):根据格式字符串格式化日期值。相关的格式如下,除了用于这个函数,格式还可以用于:STR_TO_DATE(), TIME_FORMAT(), UNIX_TIMESTAMP().
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14
mysql>
SELECT
DATE_FORMAT(
'2009-10-04 22:23:00'
,
'%W %M %Y'
);
->
'Sunday October 2009'
mysql>
SELECT
DATE_FORMAT(
'2007-10-04 22:23:00'
,
'%H:%i:%s'
);
->
'22:23:00'
mysql>
SELECT
DATE_FORMAT(
'1900-10-04 22:23:00'
,
->
'%D %y %a %d %m %b %j'
);
->
'4th 00 Thu 04 10 Oct 277'
mysql>
SELECT
DATE_FORMAT(
'1997-10-04 22:23:00'
,
->
'%H %k %I %r %T %S %w'
);
->
'22 22 10 10:23:00 PM 22:23:00 00 6'
mysql>
SELECT
DATE_FORMAT(
'1999-01-01'
,
'%X %V'
);
->
'1998 52'
mysql>
SELECT
DATE_FORMAT(
'2006-06-00'
,
'%d'
);
->
'00'
日期时间运算
DATE_ADD(date,INTERVAL expr unit), DATE_SUB(date,INTERVAL expr unit)这些函数执行日期运算,来进行日期向前/向后的偏移。date参数指定开始日期或日期时间值。expr是一个表达式,指定从开始日期加上或减去的间隔值。expr被计算为一个字符串;它可以以-开头表示负间隔。unit是一个关键字,指示表达式应使用的单位。
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24mysql>
SELECT
DATE_ADD(
'2018-05-01'
,INTERVAL 1
DAY
);
->
'2018-05-02'
mysql>
SELECT
DATE_SUB(
'2018-05-01'
,INTERVAL 1
YEAR
);
->
'2017-05-01'
mysql>
SELECT
DATE_ADD(
'2020-12-31 23:59:59'
,
-> INTERVAL 1
SECOND
);
->
'2021-01-01 00:00:00'
mysql>
SELECT
DATE_ADD(
'2018-12-31 23:59:59'
,
-> INTERVAL 1
DAY
);
->
'2019-01-01 23:59:59'
mysql>
SELECT
DATE_ADD(
'2100-12-31 23:59:59'
,
-> INTERVAL
'1:1'
MINUTE_SECOND);
->
'2101-01-01 00:01:00'
mysql>
SELECT
DATE_SUB(
'2025-01-01 00:00:00'
,
-> INTERVAL
'1 1:1:1'
DAY_SECOND);
->
'2024-12-30 22:58:59'
mysql>
SELECT
DATE_ADD(
'1900-01-01 00:00:00'
,
-> INTERVAL
'-1 10'
DAY_HOUR);
->
'1899-12-30 14:00:00'
mysql>
SELECT
DATE_SUB(
'1998-01-02'
, INTERVAL 31
DAY
);
->
'1997-12-02'
mysql>
SELECT
DATE_ADD(
'1992-12-31 23:59:59.000002'
,
-> INTERVAL
'1.999999'
SECOND_MICROSECOND);
->
'1993-01-01 00:00:01.000001'
DATEDIFF(expr1,expr2)
DATEDIFF()返回expr1−expr2,以从一个日期到另一个日期的天数表示。expr1和expr2是日期或日期和时间表达式。计算中只使用值的日期部分。
? 1 2 3 4mysql>
SELECT
DATEDIFF(
'2007-12-31 23:59:59'
,
'2007-12-30'
);
-> 1
mysql>
SELECT
DATEDIFF(
'2010-11-30 23:59:59'
,
'2010-12-31'
);
-> -31
参考:
【1】:12.7 Date and Time Functions
【2】: MySQL 获得当前日期时间 函数
【3】:一文搞定Mysql日期时间函数
到此这篇关于MySQL日期与时间函数的文章就介绍到这了,更多相关MySQL日期与时间函数内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
原文链接:https://www.cnblogs.com/three-fighter/p/14111553.html