MySQL 的日期时间处理函数
MySQL 的时间处理相关函数汇总。
参考文档:https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
当前时间
now () 以 'YYYY-MM-DD hh:mm:ss
' 格式返回当前时间。
>> select now()
2022-01-21 12:21:04
时间戳
unix_timestamp
将时间转换为时间戳格式:
>> SELECT unix_timestamp()
>> SELECT unix_timestamp(now())
>> SELECT unix_timestamp('2022-01-21 12:21:04')
1642738864
from_unixtime
将时间戳转为时间格式:
>> SELECT from_unixtime(1642738864)
2022-01-21 12:21:04
进行 格式化:
>> SELECT from_unixtime(1642738864,'%Y-%m-%d %H.%i.%s')
2022-01-21 12.21.04
时间格式化
select date_format(now(),'%Y-%m-%d')
下列修饰符可以被用在 format 字符串中:
%M 月名字(January……December)
%W 星期名字(Sunday……Saturday)
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(Sun……Sat)
%d 月份中的天数, 数字(00……31)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(Jan……Dec)
%j 一年中的天数(001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……12)
%I 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59)
%r 时间,12 小时(hh:mm:ss [AP]M)
%T 时间,24 小时(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一个星期中的天数(0=Sunday ……6=Saturday )
%U 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一天
%% 一个文字“%”
时间计算
DATE_ADD 增加时间
set @dt = now();
select date_add(@dt, interval 1 day); -- 加1天
select date_add(@dt, interval 1 hour); -- 加1小时
select date_add(@dt, interval 1 minute); -- 加1分钟
select date_add(@dt, interval 1 second); -- 加1秒
select date_add(@dt, interval 1 microsecond);-- 加1毫秒
select date_add(@dt, interval 1 week);-- 加1周
select date_add(@dt, interval 1 month);-- 加1月
select date_add(@dt, interval 1 quarter);-- 加1季
select date_add(@dt, interval 1 year);-- 加1年
DATE_SUB 减少时间
set @dt = now();
select date_sub(@dt, interval 1 day); -- 减1天
select date_sub(@dt, interval 1 hour); -- 减1小时
select date_sub(@dt, interval 1 minute); -- 减1分钟
select date_sub(@dt, interval 1 second); -- 减1秒
select date_sub(@dt, interval 1 microsecond);-- 减1毫秒
select date_sub(@dt, interval 1 week);-- 减1周
select date_sub(@dt, interval 1 month);-- 减1月
select date_sub(@dt, interval 1 quarter);-- 减1季
select date_sub(@dt, interval 1 year);-- 减1年
DATEDIFF 间隔天数
格式:DATEDIFF (expr1,expr2)
返回:从一个日期到另一个日期的天数,即 *expr1
*- *expr2
*。
expr1
和 *expr2
* 是日期或日期和时间表达式。计算中仅使用值的日期部分。
>> SELECT DATEDIFF('2021-12-31 23:59:59','2021-01-01')
364
TIMESTAMPDIFF 时间差值
语法: timestampdiff(unit,begin,end)
其中,begin 和 end 可以为 DATE 或 DATETIME 类型,并且可允许参数为混合类型。
相关文章