Mysql获取昨日、今日时间以及时间戳

1、2020-04-14 00:00:00

-- 时间格式
SELECT DATE_FORMAT(CAST(SYSDATE()AS DATE),'%Y-%m-%d %H:%i:%s');

-- 时间戳
SELECT UNIX_TIMESTAMP(DATE_FORMAT(CAST(SYSDATE()AS DATE),'%Y-%m-%d %H:%i:%s'));

2、2020-04-14 23:59:59

-- 时间格式
SELECT DATE_SUB( DATE_ADD(CAST(SYSDATE()AS DATE), INTERVAL 1 DAY),INTERVAL 1 SECOND);

-- 时间戳
SELECT UNIX_TIMESTAMP(DATE_SUB(DATE_ADD(CAST(SYSDATE()AS DATE), INTERVAL 1 DAY),INTERVAL 1 SECOND));

3、今天日期:2020-04-14

SELECT CAST(SYSDATE()AS DATE)

4、当前时间:2020-04-14 18:43:25

SELECT SYSDATE(),now()

5、获取昨日0点时间和12::59:59秒时间和时间戳

SELECT 
CONCAT(DATE_FORMAT(CAST(SYSDATE()AS DATE) - INTERVAL 1 DAY,'%Y-%m-%d'),' 00:00:00'),
CONCAT(DATE_FORMAT(CAST(SYSDATE()AS DATE) - INTERVAL 1 DAY,'%Y-%m-%d'),' 23:59:59')

image.png

-- 日期字符串转时间戳,10位,数据库存储的是13位
select UNIX_TIMESTAMP('2019-09-01 00:00:00');

-- 时间戳转日期
select FROM_UNIXTIME(1567267200,'%Y-%m-%d %H:%i:%s')

6、查询最近一天的时间

SELECT DATE_ADD('1589201281', INTERVAL -1 DAY)

7、当日/昨天/前三天

SELECT CAST(SYSDATE()AS DATE);	-- 2020-06-05
SELECT DATE_SUB(DATE_ADD(CAST(SYSDATE()AS DATE), INTERVAL 1 DAY),INTERVAL 1 SECOND);	-- 2020-06-05 23:59:59
SELECT UNIX_TIMESTAMP('2020-06-05')+86400-1;	-- 参数当天结束时间戳

SELECT DATE_SUB(CAST(SYSDATE()AS DATE), INTERVAL 1 DAY);	-- 2020-06-04
SELECT DATE_SUB(DATE_SUB(CAST(SYSDATE()AS DATE), INTERVAL 0 DAY),INTERVAL 1 SECOND);	-- 2020-06-04 23:59:59
SELECT UNIX_TIMESTAMP('2020-06-05')-1;	-- 2020-06-04 23:59:59

SELECT DATE_SUB(CAST(SYSDATE()AS DATE), INTERVAL 2 DAY);	-- 2020-06-03
SELECT DATE_SUB(DATE_SUB(CAST(SYSDATE()AS DATE), INTERVAL 1 DAY),INTERVAL 1 SECOND);	-- 2020-06-04 23:59:59
SELECT UNIX_TIMESTAMP('2020-06-05')-86400-1;	-- 2020-06-04 23:59:59

8、时间转换

FROM_UNIXTIME(event_time, '%Y-%m-%d')
UNIX_TIMESTAMP(event_time)
DATE_FORMAT(event_time, '%Y-%m-%d')