-- 常用的日期
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(Day ,'2021-12-01','2021-12-02');
select DATE_FORMAT('Mon Jun 11 00:00:00 CST 2018','%Y-%m-%d %H:%i:%s');
评论