本次记录了获取日期时间的多种方式,还有日期和字符串之间的转换,以及加减日期的操作。
获取时间
# 1.获取当前时间(年月日时分秒格式)
select now();# 2.获取当前时间(年月日格式)
select curdate();# 3.获取当前时间(时分秒格式)
select curtime();# 4.获取当前时间(时间戳格式)
select unix_timestamp();# 5.根据时间戳获取时间
select from_unixtime(1712119220);# 6.仅获取目标日期的年月日(字符串格式或者日期格式都可以)
select date(now());# 7.仅获取目标日期的时分秒(字符串格式或者日期格式都可以)
select time(now());# 8.获取指定时间的 年
select year(now());# 9.获取指定时间的 月
select month(now());# 10.获取指定时间的 日
select day(now());# 11.获取指定时间的 时
select hour(now());# 12.获取指定时间的 分
select minute(now());# 13.获取指定时间的 秒
select second(now());# 14.获取日期时间所在月份的最后一天的日期
select LAST_DAY(now());
操作时间
# 0.比较时间的话,使用 <、<=、=、>=、>、或 BETWEEN 等操作符比较时间即可# 1.日期转字符串(其它格式化参数,详细请看下面的附录二)
select DATE_FORMAT(now(),'%Y-%m-%d %H:%i:%s');# 2.字符串转日期(其它格式化参数,详细请看下面的附录二)
select str_to_date('now()', '%Y-%m-%d %H:%i:%s');# 3.计算两个日期相差的天数
select datediff(now(), '2024-04-03 16:16:16');# 4.给日期时间 添加指定时间 相当于日期的加法操作(其它日期参数,详细请看下面的附录一)
select DATE_ADD(now(), INTERVAL 2 DAY);# 5.给日期时间 减去指定时间 相当于日期的减法操作(其它日期参数,详细请看下面的附录一)
SELECT DATE_SUB(now(), INTERVAL 2 DAY);
附录一:日期参数
SECOND 秒
MINUTE 分
HOUR 时
DAY 天
WEEK 周
MONTH 月
QUARTER 季度
YEAR 年
... ...
附录二:日期格式化参数
%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), 这里星期一是星期的第一
最后,如果有什么忽略掉了,可以留言,后续慢慢更新。
若言有不足,勤修必渐新。