【MySQL】时间与日期函数

261 阅读4分钟

本人已参与「新人创作礼」活动,一起开启掘金创作之路。

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第30天,点击查看活动详情

目录

今天阿文介绍的内容:

  • 日期与时间函数

日期和时间函数

日期和时间函数主要用来处理日期和时间值,一般的日期函数除了使用DATE类型的参数外,也可以使用DATETIME或者TIMESTAMP类型的参数,但会忽略这些值的时间部分。相同的,以TIME类型值为参数的函数,可以接受TIMESTAMP类型的参数,但会忽略日期部分,许多日期函数可以同时接受数字和字符串类型的两种参数。

1.获取当前日期的函数和获取当前时间的函数

1.1CURDATE()与CURRENT_DATE()

CURDATE()CURRENT_DATE()函数的作用相同,将当前日期按照‘YYYY-MM-DD’YYYYMMDD格式的值返回,具体格式根据函数在字符串或是数字语境中而定。

例子:

SELECT CURDATE(), CURRENT_DATE(), CURDATE() + 0;

返回结果:

MySQL时间函数1.png

可以看到,两个函数作用是相同的,都是返回相同的系统当前日期,而CURDATE()+0将当前日期转换为数值型

1.2CURTIME()与CURRENT_TIME()

CURTIME()CURRENT_TIME()函数的作用相同,将当前时间以‘HH:MM:SS’HHMMSS的格式返回,具体格式根据函数在字符串或是数字语境中而定。

例子:

SELECT CURTIME(), CURRENT_TIME(), CURTIME() + 0;

返回结果:

MySQL更新数据2.png

可以看到,两个函数的作用相同,都返回了相同的系统当前时间,“CURTIME ()+0”将当前时间值转换为数值型

2.获取当前日期和时间的函数

在MySQL中提供了四个函数,它们作用相同:

  • CURRENT_TIMESTAMP()
  • LOCALTIME()
  • NOW()
  • SYSDATE()

均返回当前日期和时间值,格式为‘YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS,具体格式根据函数在字符串或数字语境中而定。

例子:

SELECT CURRENT_TIMESTAMP(), LOCALTIME(), NOW(), SYSDATE();

返回结果:

MySQL时间函数3.png

可以看到,四个函数返回的结果是相同的

3.UNIX时间戳函数

UNIX_TIMESTAMP(date)若无参数调用,则返回一个UNIX时间戳(‘1970-01-01 00:00:00’GMT之后的秒数)作为无符号整数。其中,GMT(Green wich mean time)为格林尼治标准时间。若用date来调用UNIX_TIMESTAMP(),它会将参数值以‘1970-01-01 00:00:00’GMT后的秒数的形式返回。date可以是一个DATE字符串、DATETIME字符串、TIMESTAMP或一个当地时间的YYMMDD或YYYYMMDD格式的数字。

例子:

SELECT UNIX_TIMESTAMP(), UNIX_TIMESTAMP(NOW()), NOW();

返回结果:

MySQL时间函数4.png

FROM_UNIXTIME(date)函数把UNIX时间戳转换为普通格式的时间,与UNIX_TIMESTAMP (date)函数互为反函数

FROM_UNIXTIME函数例子:

SELECT FROM_UNIXTIME('1666870461');

返回结果:

MySQL时间函数5.png

可以看到时间刚刚好和之前UNIX_TIMESTAMP(NOW())的结果正好相反。

4.UTC日期的函数和UTC时间的函数

UTC_DATE()函数返回当前UTC(世界标准时间)日期值,其格式为‘YYYY-MM-DD’YYYYMMDD,具体格式取决于函数是否用在字符串或数字语境中。

UTC_DATE()函数例子:

SELECT UTC_DATE(), UTC_DATE() + 0;

返回结果:

MySQL时间函数6.png

可以看到,UTC_DATE()函数返回值为当前时区的日期值。

UTC_TIME()函数例子:

SELECT UTC_TIME(), UTC_TIME() + 0;

例子:

MySQL时间函数7.png

5.月份的函数MONTH(date)和MONTHNAME(date)

月份的函数MONTH(date)和MONTHNAME(date)

例子:

SELECT MONTH("2022-10-27");

返回结果:

MySQL时间函数8.png

MONTHNAME(date)函数返回日期date对应月份的英文全名。

例子:

SELECT MONTHNAME("2022-10-27");

返回结果:

MySQL时间函数9.png

6.星期的函数DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d)

DAYNAME(d)函数返回d对应的工作日的英文名称,例如Sunday、Monday等。

例子:

SELECT DAYNAME("2022-10-27");

返回结果:

MySQL时间函数10.png

可以看到,2022年10月27日是星期四,因此返回结果为Thursday。

DAYOFWEEK(d)函数返回d对应的一周中的索引(位置,1表示周日,2表示周一,...,7表示周六)。

例子:

SELECT DAYOFWEEK();

返回结果:

MySQL时间函数11.png

2022年10月27日为周四,因此返回其对应的索引值,结果为5。

WEEKDAY(d)返回d对应的工作日索引:0表示周一,1表示周二,...,6表示周日。

例子:

SELECT WEEKDAY('2022-10-27 20:42:00');

返回结果:

MySQL时间函数12.png

可以看到,WEEKDAY()和DAYOFWEEK()函数都是返回指定日期在某一周内的位置,只是索引编号不同


总结

  • 时间和日期函数就是在MySQL中获取日期和和时间的函数,在需要存储时间信息时,会进行调用

好了,今天阿文就介绍到这了...

byebye