Mysql 获取昨日、今日、明日凌晨时间的方法:
获取今日凌晨时间
UNIX_TIMESTAMP(CAST(SYSDATE()AS DATE))
获取昨日凌晨时间
UNIX_TIMESTAMP(CAST(SYSDATE()AS DATE) - INTERVAL 1 DAY)
获取明日凌晨时间
UNIX_TIMESTAMP(CAST(SYSDATE()AS DATE) + INTERVAL 1 DAY)
获取的是时间戳
时间戳转换成datetime, datetime也就是我们说的日期格式 年-月-日 时-分-秒
FROM_UNIXTIME();
datetime转时间戳
UNIX_TIMESTAMP();
测试
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(CAST(SYSDATE()AS DATE))) 今日; SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(CAST(SYSDATE()AS DATE) - INTERVAL 1 DAY)) 昨日; SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(CAST(SYSDATE()AS DATE) + INTERVAL 1 DAY)) 明日;
结果:
2019-10-06 00:00:00 // 今日 2019-10-05 00:00:00 // 昨日 2019-10-07 00:00:00 // 明日
可看出 + INTERVAL 1 DAY 可自己随意修改
DATE_FORMAT(datetime ,format)用法,转换日期格式
DATE_FORMAT('2019-10-07 00:00:00', '%Y-%c-%d');
结果:
2019-10-07 // DATE_FORMAT之后的结果
常用的:
'%Y-%c-%d %H:%i:%S'
年-月-日 时:分:秒
'%Y-%c-%d'
年-月-日
'%H:%i:%S'
时:分:秒
自己随意取舍
下面7点来自 : https://www.jb51.net/article/132425.htm
1、当前日期 select DATE_SUB(curdate(), INTERVAL 0 DAY) ;
2、明天日期 select DATE_SUB(curdate(), INTERVAL -1 DAY) ;
3、昨天日期 select DATE_SUB(curdate(), INTERVAL 1 DAY) ;
4、前一个小时时间 select date_sub(now(), interval 1 hour);
5、后一个小时时间 select date_sub(now(), interval -1 hour);
6、前30分钟时间 select date_add(now(), interval -30 minute)
7、后30分钟时间 select date_add(now(), interval 30 minute)