CREATE TABLE `t_test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userId` varchar(16) NOT NULL ,
`userName` varchar(16) NOT NULL ,
`code` varchar(16) NOT NULL,
`address` varchar(16) NOT NULL,
`startTime` varchar(8) DEFAULT NULL ,
`updateTime` datetime NOT NULL ,
PRIMARY KEY (`id`),
KEY `apptDate` (`apptDate`)
) ENGINE=InnoDB AUTO_INCREMENT=2769143 DEFAULT CHARSET=utf8 COMMENT='测试';
1、查看某一区间的记录
SELECT COUNT(1) count FROM t_test WHERE startTime BETWEEN '2019-8-1' AND '2019-8-15';
SELECT COUNT(1) count FROM t_test WHERE startTime >= '2019-8-1' AND startTime <='2019-8-15';
SELECT COUNT(1) num FROM t_test WHERE startTime >='2019-07-15 00:00:00' AND startTime <='2019-07-30 24:00:00';
2、 格式化时间
DATE_FORMATE将日期类型转换为字符串
/// %h 12小时制
SELECT DATE_FORMAT(NOW(),"%Y-%m-%d %h:%i:%s");
/// %H 24小时制
SELECT DATE_FORMAT(NOW(),"%Y-%m-%d %H:%i:%s");
查询结果:2019-08-20 04:25:17
3、时间查询函数
#获取年份
SELECT YEAR(NOW()) AS 'year';
#获取月份
SELECT MONTH(NOW()) AS 'mouth';
#获取日期
SELECT DAY(NOW()) AS 'day' ;
#获取当前日期
SELECT CURRENT_DATE;
#获取当前时间
SELECT CURRENT_TIME
#获取指定日期是一年的的第几天
SELECT DAYOFYEAR(NOW());
#获取指定日期是一个月中的第几天
SELECT DAYOFMONTH(NOW());
#获取指定日期是一周的第几天
SELECT DAYOFWEEK(NOW()) AS 'week';
#求两个时间的相差日期
SELECT DATEDIFF(NOW(),'2019-07-01');
#求两个日期以时间戳的时间差
SELECT TIMESTAMPDIFF(SECOND ,'2020-08-13 17:23:00','2020-08-13 17:50:00');
#查询指定时间的上一个月份
SELECT PERIOD_DIFF(DATE_FORMAT(NOW(),'%Y%m'),DATE_FORMAT('2019-08-31','%Y%m'));
#与指定时间相差5年
SELECT DATE_SUB(NOW(),INTERVAL 5 YEAR);
#与指定时间相差5天
SELECT DATE_SUB(NOW(),INTERVAL 5 DAY);
#与指定时间相差5小时
SELECT DATE_SUB(NOW(),INTERVAL 5 HOUR);
#指定时间加n天
SELECT DATE_ADD(NOW(),INTERVAL -7 DAY)
#字符串转为日期
SELECT STR_TO_DATE('2019-01-01 00:00:00', '%Y-%m-%d %H:%i:%s');
#指定时间加上30分钟
SELECT DATE_FORMAT(DATE_ADD(STR_TO_DATE(CONCAT('2019-09-10',' ','08:20:00'), '%Y-%m-%d %H:%i:%s'),INTERVAL 30 MINUTE),'%H:%i');
#指定字符串转时间戳
SELECT UNIX_TIMESTAMP(CONCAT(DATE(NOW()),' 10:10:50'))*1000