mysql查询时间段

前言

阅读需要 3 分钟

内容:mysql 时间段查询、一些时间的类型、及常用时间函数

几个日期类型

日期类型 存储空间 日期格式 日期范围
datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
timestamp 4 bytes YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 ~ 2038
date 3 bytes YYYY-MM-DD 1000-01-01 ~ 9999-12-31
year 1 bytes YYYY 1901 ~ 2155

CREATE TABLE `t_ian_test` (
                          `id` bigint(20) NOT NULL,
                          `name` varchar(64) NOT NULL,
                          `startTime` datetime NOT NULL,
                          `endTime` datetime NOT NULL,
                          PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `t_ian_test` VALUES (1, '牛', '2018-01-21 10:20:09', '2018-01-21 10:20:09');
INSERT INTO `t_ian_test` VALUES (2, '年', '2021-01-29 10:20:30', '2021-01-29 10:20:30');
INSERT INTO `t_ian_test` VALUES (3, '大', '2021-01-28 19:47:37','2021-01-28 19:47:37');
INSERT INTO `t_ian_test` VALUES (4, '吉', '2021-01-28 19:51:01','2021-01-28 19:51:01');

查询时间段

查询 28 号这天的所有数据 - fail

select * from t_ian_test where  startTime between '2021-01-28' and '2021-01-28';

select * from t_ian_test where  startTime between '2021-01-28 00:00:00' and '2021-01-28 00:00:00';

查询 28 号这天的所有数据 - success

select * from t_ian_test where  startTime between '2021-01-28 19:47:37' and '2021-01-28 19:51:01';

查询 28 号这天的所有数据 - success

select * from t_ian_test where  startTime between '2021-01-28' and '2021-01-29';

查询 28 号这天的所有数据 - success

select * from t_ian_test where startTime between '2021-01-28' and date_add('2021-01-28', interval 1 day);

获取系统当前时间的函数:

select CURDATE();

select NOW();

获取时间差的函数:

period_diff()

datediff(date1,date2)

timediff(time1,time2)

日期加减函数:

date_sub() 、adddate()、addtime()、period_add(P,N)

# 加1天
select date_add(now(), interval 1 day);

#加1小时
select date_add(now(), interval 1 hour);

# 加1分钟
select date_add(now(), interval 1 minute);

#加1秒
select date_add(now(), interval 1 second);

#加1毫秒
select date_add(now(), interval 1 microsecond);

#加1周
select date_add(now(), interval 1 week);

#加1月
select date_add(now(), interval 1 month);

#加1季
select date_add(now(), interval 1 quarter);

#加1年
select date_add(now(), interval 1 year);

时间格式转化函数:

date_format(date, format)

str_to_date(str, format)

unix_timestamp()

from_unixtime(unix_timestamp, format)

posted @ 2021-01-30 12:58  爱生活的阿琦  阅读(475)  评论(0编辑  收藏  举报