-- ---------------------------- -- Table structure for t_user -- ---------------------------- DROP TABLE IF EXISTS `t_user`; CREATE TABLE `t_user` ( `userId` bigint(20) NOT NULL, `fullName` varchar(64) NOT NULL, `userType` varchar(16) NOT NULL, `addedTime` datetime NOT NULL, PRIMARY KEY (`userId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of t_user -- ---------------------------- INSERT INTO `t_user` VALUES ('1', '爽爽', '普通', '2018-01-21 10:20:09'); INSERT INTO `t_user` VALUES ('2', '贵贵', '普通', '2017-11-06 10:20:22'); INSERT INTO `t_user` VALUES ('3', '芬芬', 'vip', '2017-11-13 10:20:42'); INSERT INTO `t_user` VALUES ('4', '思思', 'vip', '2018-01-21 10:20:55'); INSERT INTO `t_user` VALUES ('5', '妍妍', 'vip', '2017-09-17 10:21:28'); 下面是sql语句:
-- 今天  
select fullName,addedTime from t_user where to_days(addedTime) <= to_days(now()); 
-- 昨天  
select fullName,addedTime from t_user where to_days(NOW()) - TO_DAYS(addedTime) <= 1;  
-- 近7天  
select fullName,addedTime from t_user where date_sub(CURDATE(),INTERVAL 7 DAY) <= DATE(addedTime);  
-- 近30天  
SELECT fullName,addedTime FROM t_user where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(addedTime);
-- 本月  
SELECT fullName,addedTime FROM t_user WHERE DATE_FORMAT( addedTime, '%Y%m' ) = DATE_FORMAT( CURDATE() , '%Y%m' );
-- 上一月  
SELECT fullName,addedTime FROM t_user WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( addedTime, '%Y%m' ) ) =1; 
-- 查询本季度数据  
select fullName,addedTime FROM t_user where QUARTER(addedTime)=QUARTER(now()); 
-- 查询上季度数据  
select fullName,addedTime FROM t_user where QUARTER(addedTime)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));  
-- 查询本年数据  
select fullName,addedTime FROM t_user where YEAR(addedTime)=YEAR(NOW());  
-- 查询上年数据  
select fullName,addedTime FROM t_user where year(addedTime)=year(date_sub(now(),interval 1 year));  
-- 查询距离当前现在6个月的数据  
select fullName,addedTime FROM t_user where addedTime between date_sub(now(),interval 6 month) and now();  
-- 查询当前这周的数据  
SELECT fullName,addedTime FROM t_user WHERE YEARWEEK(date_format(addedTime,'%Y-%m-%d')) = YEARWEEK(now());  
-- 查询上周的数据  
SELECT fullName,addedTime FROM t_user WHERE YEARWEEK(date_format(addedTime,'%Y-%m-%d')) = YEARWEEK(now())-1;  
-- 查询上个月的数据   
select fullName,addedTime FROM t_user where date_format(addedTime,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m'); 
-- 查询当前月份的数据
select fullName,addedTime FROM t_user where DATE_FORMAT(addedTime,'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m');
select fullName,addedTime FROM t_user where date_format(addedTime,'%Y-%m')=date_format(now(),'%Y-%m'); 
-- 查询指定时间段的数据
select fullName,addedTime FROM t_user where addedTime between  '2017-1-1 00:00:00'  and '2018-1-1 00:00:00';   
select fullName,addedTime FROM t_user where addedTime >='2017-1-1 00:00:00'  and addedTime < '2018-1-1 00:00:00'; 

归纳一下:

1、查询时间段内的数据,一般可以用between and 或 <> 来指定时间段。

2、mysql的时间字段类型有:datetime,timestamp,date,time,year。

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

select CURDATE();
select NOW();

4、获取时间差的函数:

period_diff() datediff(date1,date2)      timediff(time1,time2)

5、日期加减函数:

date_sub()

date_add()     adddate()      addtime()

period_add(P,N)

--------以上参考文章( mysql日期加减

6、时间格式转化函数:

date_format(date, format) ,MySQL日期格式化函数date_format()
unix_timestamp()
str_to_date(str, format)
from_unixtime(unix_timestamp, format) ,MySQL时间戳格式化函数from_unixtime

--------以上参考文章 MYSQL日期 字符串 时间戳互转

顺带写一下oracle的查询语句:

select * from Oracle.alarmLog where alarmtime between to_date('2007-03-03 18:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2007-09-04 18:00:00','yyyy-mm-dd hh24:mi:ss')

时间就像海绵里的水,只要愿挤,总是有的。比如总结mysql中时间段查询方式的时间。o(* ̄︶ ̄*)o

用现在的话说,做好时间管理,高效的学习及工作。

DATE_SUB函数在当前时间一定的时间date合法日期,可以是当前时间now()expr希望减去的时间,整数unit减去时间的单位,如day,week,month,year实例u_user表(1)、前一周的 数据 当前时间sql结果另一种sql写法(2)、前三个月的 数据 sql结果(3)、前一年的 数据 sql。... SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( 时间字段名, '%Y%m' ) ) =1。SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1。 列中日期和时间在’2021-10-01 08:00:00’和’2021-10-31 17:00:00’之间的所有行。列中日期在’2021-10-01’和’2021-10-31’之间的所有行。列中时间在’08:00:00’和’17:00:00’之间的所有行。列中日期为’2021-10-15’的所有行。请根据你的具体需求选择适当的 查询 语句和时间格式。替换为你要 查询 的日期时间列名。替换为你要 查询 的日期列名。替换为你要 查询 的日期列名。替换为你要 查询 的时间列名。 假设我们有一个名为"orders"的表,其中包含了订单的信息,包括订单号(order_id)、订单金额(amount)和订单日期(order_date)等字段。通过使用上述的 MySQL 语句和函数,你可以轻松地 查询 指定时间范围内的 数据 。记住,根据你的具体需求,可以灵活运用日期和时间函数来满足不同的 查询 要求。上述语句将 返回 订单日期为2023年4月1日的订单 数据 ,并将日期格式化为’YYYY-MM-DD’的字符串。上述语句将 返回 订单日期在2023年1月1日和2023年2月28日之间的订单 数据 。 使用 BETWEEN 运算符或大于等于和小于等于运算符,您可以轻松地 查询 指定的 时间段 内的 数据 。根据您的具体需求,选择适合的方法来 查询 您的 数据库 。BETWEEN 运算符可用于 查询 一个范围内的 ,包括指定的起始 和结束 。在 查询 时间段 时,我们可以将起始时间作为起始 ,结束时间作为结束 ,然后使用 BETWEEN 运算符进行 查询 。本文将介绍两种常用的 MySQL 查询 时间段 的方法,并提供相应的源代码示例。另一种常用的方法是使用大于等于(>=)和小于等于( mysql 查询 时间段 数据 1、 查询 今天、昨天、近7天、近30天 数据 2、 查询 本周、上周 数据 3、 查询 本月、上个月、距离当前现在6个月的 数据 4、 查询 本季度、上个季度 数据 5、 查询 今年、昨年 数据 1、 查询 今天、昨天、近7天、近30天 数据 (1) 查询 今天 数据 -- 方式 1 SELECT * FROM guojia_zwfw_up_pro_accept a WHERE TO_DAYS(a.ApplyDate) = TO_DAYS(NOW()); -- TO_DAYS(字段) 函数,计算时间0开始计算到data时间