MySQL 中的常用日期函数:

函数描述
NOW()返回当前的日期和时间
CURDATE()返回当前的日期
CURTIME()返回当前的时间
DATE()提取日期或日期/时间表达式的日期部分
EXTRACT()返回日期/时间按的单独部分
DATE_ADD()给日期添加指定的时间间隔
DATE_SUB()从日期减去指定的时间间隔
DATEDIFF()返回两个日期之间的天数
DATE_FORMAT()用不同的格式显示日期/时间

MySQL 使用下列数据类型在数据库中存储日期或日期/时间值

  • DATE - 格式 YYYY-MM-DD
  • DATETIME - 格式: YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - 格式: YYYY-MM-DD HH:MM:SS
  • YEAR - 格式 YYYY 或 YY

函数说明:

1、NOW()  :返回当前的日期和时间
2、CURDATE()  :  返回当前的日期
3、CURTIME()  :  返回当前的时间

       示例如下:

       

4、DATE()  :  提取日期或日期/时间表达式的日期部分

      示例如下:

      

5、EXTRACT()  :  函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

      语法:EXTRACT(unit FROM date)

      unit 的可选值:

YEARMICROSECONDDAY_MICROSECONDHOUR_MICROSECOND
MONTHWEEKDAY_SECONDHOUR_SECOND
DAYQUARTERDAY_MINUTEHOUR_MINUTE
HOURSECONDDAY_HOURMINUTE_MICROSECOND
MINUTESECOND_MICROSECONDYEAR_MONTHMINUTE_SECOND

    示例如下:

    

6、DATE_ADD()  :  给日期添加指定的时间间隔

      语法:DATE_ADD(date,INTERVAL expr type)

      type 的可选值和第五点中的unit值一样

      示例如下:

      

7、DATE_SUB()  :    从日期减去指定的时间间隔

     语法:DATE_SUB(date,INTERVAL expr type)

     type 的可选值和第五点中的unit值一样

     示例如下:

    

8、DATEDIFF()    返回两个日期之间的天数

      语法: DATEDIFF(date1,date2)

      示例如下:

      

9、DATE_FORMAT()    函数用于以不同的格式显示日期/时间数据。
      语法:DATE_FORMAT(date,format)

      date 参数是合法的日期。format 规定日期/时间的输出格式。

      可以使用的格式有:

格式描述格式描述
%a缩写星期名%pAM 或 PM
%b缩写月名%r时间,12-小时(hh:mm:ss AM 或 PM)
%c月,数值%S秒(00-59)
%D带有英文前缀的月中的天%s秒(00-59)
%d月的天,数值(00-31)%T时间, 24-小时 (hh:mm:ss)
%e月的天,数值(0-31)%U周 (00-53) 星期日是一周的第一天
%f微秒%u周 (00-53) 星期一是一周的第一天
%H小时 (00-23)%V周 (01-53) 星期日是一周的第一天,与 %X 使用
%h小时 (01-12)%v周 (01-53) 星期一是一周的第一天,与 %x 使用
%I小时 (01-12)%W星期名
%i分钟,数值(00-59)%w周的天 (0=星期日, 6=星期六)
%j年的天 (001-366)%X年,其中的星期日是周的第一天,4 位,与 %V 使用
%k小时 (0-23)%x年,其中的星期一是周的第一天,4 位,与 %v 使用
%l小时 (1-12)%Y年,4 位
%M月名%y年,2 位
%m月,数值(00-12)

     示例如下:

     

10、本文的SQL汇集:

-- 1、2、3
SELECT NOW(),CURDATE(),CURTIME();

-- 4
SELECT DATE(NOW());

-- 5、
SELECT NOW(),
EXTRACT(YEAR FROM NOW()) AS Year,
EXTRACT(MONTH FROM NOW()) AS Month,
EXTRACT(DAY FROM NOW()) AS Day,
EXTRACT(HOUR FROM NOW()) AS Hour,
EXTRACT(MINUTE FROM NOW()) AS MINUTE,
EXTRACT(SECOND FROM NOW()) AS Second;

-- 6、一个星期后的今天
SELECT DATE_ADD(NOW(),INTERVAL 7 DAY) AS A_week_later;

-- 7、去年的今天
SELECT DATE_SUB(CURRENT_DATE(),INTERVAL 1 YEAR) AS Today_last_year;

-- 8、
SELECT DATEDIFF('2020-04-22','1998-01-11') AS DifferDate;

-- 9、
SELECT DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')  UNION ALL
SELECT DATE_FORMAT(NOW(),'%m-%d-%Y') 		   UNION ALL
SELECT DATE_FORMAT(NOW(),'%d %b %y')           UNION ALL
SELECT DATE_FORMAT(NOW(),'%d %b %Y %T:%f') ;

若还想了解一下SQL Server的日期函数,可点击这里

参考资料:SQL Date 函数 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐