【MySQL】15-超详细MySQL日期类型函数总结



1. 获取日期、时间

函数作用
CURDATE(), CURRENT_DATE()返回当前日期,只包含年月日
CURTIME()返回当前时间,只包含时分秒
NOW() / SYSDATE() / CURRENT_TIMESTAMP() / LOCALTIME() / LOCALTIMESTAMP()返回当前系统日期和时间
UTC_DATE()返回UTC(世界标准时间) 日期
UTC_TIME()返回UTC(世界标准时间) 时间

2. 日期与时间戳的转换

函数作用
UNIX_TIMESTAMP()以UNIX时间戳的形式返回当前时间。SELECT UNIX_TIMESTAMP() ->1634348884
UNIX_TIMESTAMP(date)将时间date以UNIX时间戳的形式返回。
FROM_UNIXTIME(timestamp)将UNIX时间戳转换为普通格式的时间

3. 获取月份、星期、星期数、天数等函数

函数作用
YEAR(date) / MONTH(date) / DAY(date)返回具体的日期值
HOUR(time) / MINUTE(time) / SECOND(time)返回具体时间值
MONTHNAME(date)返回月份:January
DAYNAME(date)返回星期几:MONDAY
WEEKDAY返回周几:周一是0,周二是1,…,周日是6
QUARTER(date)返回日期对应的季度,范围1~4
WEEK(date), WEEKOFYEAR(date)返回一年中的第几周
DAYOFYEAR(date)返回日期是一年中的第几天
DAYOFMONTH(date)返回日期位于所在月份的第几天
DAYOFWEEK(date)返回周几,注意:周日是1,…,周六是7

4. 日期的操作函数

函数作用
EXTRACT(typr FROM date)返回指定日期中特定的部分,type指定返回的值

EXTRACT(typr FROM date)函数中 type 的取值与含义:


5. 时间和秒钟转换的函数

函数作用
TIME_TO_SEC(time)将time转换为秒并返回结果值。转换公式为:小时×3600+分钟×60+秒
SEC_TO_TIME(seconds)将seconds转换为包含时分秒的时间

6. 计算日期和时间的函数

函数作用
DATE_ADD(datatime, INTERVAL expr type), ADDDATE(date, INTERVAL expr type)返回与给定日期时间相差INTERBAL时间段的日期时间
DATE_SUB(date, INTERVAL expr type), SUBDATE(date, INTERVAL expr type)返回与date相差INTERVAL时间间隔的日期

上述函数中的 type 的取值:


第2组:

函数作用
ADDTIME(time1, time2)返回time1加上time2的时间。当time2为一个数字时,代表的是秒,可以为负数
SUBTIME(time1, time2)返回time1减去time2后的时间。当time2为一个数字时,代表的是秒,可以为负数
DATEDIFF(date1, date2)返回date1-date2的日期间隔天数
TIMEDIFF(time1, time2)返回time1-time2的时间间隔
FROM_DAYS(N)返回从0000年1月1日起,N天以后的日期
TO_DAYS(date)返回日期date距离0000年1月1日的天数
LAST_DAY(date)返回date所在月份的最后一天的日期
MAKEDATE(year, n)针对给定年份与所在年份中的天数返回一个日期
MAKETIME(hour, minute, second)将给定的时分秒组合成时间并返回
PERIOD_ADD(time, n)返回time加上n后的时间

7. 日期的格式化与解析

函数作用
DATE_FORMAT(date, fmt)按照字符串fmt格式化日期date值
TIME_FORMAT(time, fmt)按照字符串fmt格式化时间time值
GET_FORMAT(date_type, format_type)返回日期字符串的显示格式
STR_TO_DATE(str, fmt)按照字符串fmt对str进行解析,解析为一个日期

上述 非GET_FORMAT 函数中fmt参数常用的格式符:

格式符说明格式符说明
%Y4位数字表示年份%y2位数字表示年份
%M月名表示月份 (January,…)%m2位数字表示月份 (01, …)
%b缩写的月份名 (Jan., Feb., …)%c数字表示月份 (1, 2, …)
%D英文后缀表示月中的天数 (1st, 2nd, …)%d2位数字表示月中的天数 (01, 02, …)
%e数字形式表示月中的天数 (1, 2, …)
%H2位数字表示小时,24小时制 (01, …, 24)%h或%l2位数字表示小时,12小时制
%k数字形式表示小时,24小时制 (1, 2, …)%l数字形式表示小时,12小时制 (1, 2, …)
%i2位数字表示分钟 (01, …)%S或%s2位数字表示秒 (01, …, 60)
%W一周中的星期名称 (Sunday, …)%a一周中星期的缩写 (Sun,…, Mon.)
%w数字形式表示周中的天数 (0=Sunday, 1=Monday, …)
%j3位数字表示年中的天数 (001, …365)%U数字形式表示年中的第几周 (1, 2, …) 其中Sunday为周中第一天
%u数字形式表示年中的第几周(1, 2, …) 其中Monday为周中第一天
%T24小时制%r12小时制
%pAM或PM%%表示 %

GET_FORMAT 函数中的 date_typeformat_type 参数取值如下:

日期类型格式化类型返回的格式化字符串
DATEUSA%m.%d.%Y
DATEJIS%Y-%m-%d
DATEISO%Y-%m-%d
DATEEUR%d.%m.%Y
DATEINTERNAL%Y%m%d
TIMEUSA%h:%i:%s %p
TIMEJIS%H:%i:%s
TIMEISO%H:%i:%s
TIMEEUR%H.%i.%s
TIMEINTERNAL%H%i%s
DATETIMEUSA%Y-%m-%d %H.%i.%s
DATETIMEJIS%Y-%m-%d %H:%i:%s
DATETIMEISO%Y-%m-%d %H:%i:%s
DATETIMEEUR%Y-%m-%d %H.%i.%s
DATETIMEINTERNAL%Y%m%d%H%i%s
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自牧君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值