MySQL datetime、date、time、str之间的转化与比较
SELECT NOW(),CURDATE(),CURTIME(),
-- datetime 转 date time
NOW(), DATE(NOW()), TIME (NOW()), CONCAT(DATE(NOW()), ' ', TIME (NOW())),
-- str 转 datetime date time
str_to_date('2019-04-25 08:50:00', '%Y-%m-%d %H:%i:%s'),DATE('2019-04-25 08:50:00'),TIME ('2019-04-25 08:50:00'),
str_to_date('2019-04-25 08:50:00', '%Y-%m-%d %T'),
-- 比较
NOW() = CONCAT(DATE(NOW()), ' ', TIME (NOW())),
DATE(NOW()) = '2019-04-25',
NOW() = DATE(NOW()),
NOW() = TIME (NOW());
-- 获取当前时间的函数
select CURRENT_TIMESTAMP, CURRENT_DATE, CURRENT_TIME; -- 当前时间
select CURRENT_TIMESTAMP(), CURRENT_DATE(), CURRENT_TIME(), CURDATE(), CURTIME(); -- 当前时间
select now(), sysdate(), SLEEP(3), now(), sysdate(); -- 当前时间
select UTC_TIMESTAMP(), UTC_DATE(), UTC_TIME(); -- UTC时间
select UNIX_TIMESTAMP(), UNIX_TIMESTAMP(now());-- 函数返回连接当前时区内的值(时间戳)
select FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y-%m-%d %H:%i:%s'); -- 时间戳格式化
select DATE_FORMAT(now(),'%Y-%m-%d %H:%i:%s'); -- 时间格式化
-- ----------------- 补充日期操作
/* 对日期进行 加减(两个函数记一个即可)
DATE_ADD(date,INTERVAL expr type);
DATE_SUB(date,INTERVAL expr type);
type取值:YEAR、MONTH、DAY、HOUR、MINUTE、SECOND、YEAR_MONTH、DAY_SECOND 等等
*/
-- 加1天
select DATE_ADD(now(),INTERVAL 1 DAY), DATE_SUB(now(),INTERVAL -1 DAY);
-- 复合型:加1年1月
select DATE_ADD(now(),INTERVAL '1 1' YEAR_MONTH), DATE_SUB(now(),INTERVAL '-1 -1' YEAR_MONTH);
-- 加1天2时3分4秒
select DATE_ADD('2020-12-23 00:00:00',INTERVAL '1 2:3:4' DAY_SECOND),DATE_SUB('2020-12-23 00:00:00',INTERVAL '-1 -2:-3:-4' DAY_SECOND);
/* 获取两个日期之间的差值(datetime_expr2-datetime_expr1的值)
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
unit:差值的单位,取值:FRAC_SECOND(低版本不支持)、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER或YEAR
*/
-- 查询两个日期间的差值(单位秒)
select TIMESTAMPDIFF(SECOND,'2020-12-01 00:00:00','2020-12-01 01:01:01');
mysql 更多日期和时间相关函数请参考:https://www.mysqlzh.com/doc/118.html
版权声明:本文为qq_31975227原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。