Mysql常用时间函数的用法和应用

/* ---1)整型时间戳转换为date的格式(yyyymmdd, yyyy年mm月dd)--*/

SELECT FROM_UNIXTIME( 1249488000, '%Y%m%d' );  -- 20090806
SELECT FROM_UNIXTIME( 1249488000, '%Y年%m月%d' );  -- 2009年08月06

/* ---2)将datetime转换为时间戳--*/

SELECT UNIX_TIMESTAMP();  
SELECT UNIX_TIMESTAMP('2019-07-04 12:23:00');  

输出格式如:1562214180

/* ---3)获取当前时间(yyyy-mm-dd hh:mm:ss)的方法--*/

SELECT NOW();
SELECT LOCALTIME();
SELECT LOCALTIME;
SELECT SYSDATE();

输出格式如:2019-07-04 22:15:49

/* ---4)获取当前日期(date)--*/

SELECT CURDATE();
SELECT CURRENT_DATE();
SELECT CURRENT_DATE;

输出格式如:2019-07-04

/* ---5)获取当前时间(time)--*/

SELECT CURTIME();
SELECT CURRENT_TIME();
SELECT CURRENT_TIME;

输出格式如:22:13:56

/* ---6)获取当前日期前一天--*/

SELECT DATE_SUB(CURDATE(),INTERVAL 1 DAY);

输出格式如:2019-07-03

/* -- 7)应用:获取24小时内,7天内,30天内的数据量---*/

-- 24小时内
SELECT COUNT(1) FROM table1 a WHERE TO_DAYS(`时间字段`) = TO_DAYS(NOW());
-- 7天内
SELECT COUNT(1) FROM table1 a WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= DATE(`时间字段`);
-- 30天内
SELECT COUNT(1) FROM table1 a WHERE DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= DATE(`时间字段`);

/* ---8)获取当前时间的前5分钟--*/

-- 前5分钟
SELECT DATE_ADD(NOW(), INTERVAL -5 MINUTE); 
-- 后5分钟
SELECT DATE_ADD(NOW(), INTERVAL 5 MINUTE); 

/* ---9)应用:查询当前时间前五分钟内的数据或后5分钟内的数据--*/

select * from table1 where ((`时间字段` BETWEEN DATE_ADD(NOW(), INTERVAL -5 MINUTE) AND NOW()) 
OR (`时间字段` BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 5 MINUTE)));

/* ---10)查询指定时间段的记录 BETWEEN AND--*/

1 SELECT * FROM table1 WHERE 时间字段 BETWEEN '2010-7-12 11:18:54' AND '2010-7-12 11:22:20' ;


原文地址:https://www.cnblogs.com/simple1025/p/11132229.html