mysql查询:有关时间的筛选
###⽅法⼀:直接拿字段⽐较
(1)以下这两种⽅式最终效果⼀样
泰晤士报 大学排名SELECT bb.borrow_ate_time FROM borrow bb ate_time>='2018-09-11 00:00:00';
SELECT bb.borrow_ate_time FROM borrow bb ate_time>='2018-09-11';
borrow_no create_time
HLW-10000016216588262018-09-11 13:39:27
HLW-10000015877891962018-09-11 14:36:02
外语教育网
HLW-10000008183677932018-09-11 14:55:53
(2)如何查询某⼀天(2018-09-10)
正确⽅法
tnt是什么意思
SELECT bb.borrow_ate_time FROM borrow bb ate_time>='2018-09-10'ate_time <='2018-09-11';
错误⽅法:
SELECT bb.borrow_ate_time FROM borrow bb ate_time='2018-09-10';
直接⽤时间字段去⽐较的时候,等号后⾯需要精确到原始时间的时分秒,2018-09-10 不能代表 2018-09-10 12:22:33
###⽅法⼆:查询最近⼏天的信息施工队伍
程序中,如果查询最近⼏天的记录,就需要获取当前⽇期的时间,然后再动态⽣成最终结果,如果再把sql的时间都写死,最终就⽆法达到需求。
(1)函数now():
lect NOW();
NOW()
2018-09-11 17:53:06
(2)函数CURRENT_DATE():
lect CURRENT_DATE();
NOW()
难民奥运代表队2018-09-11
(3) 查询当⽇的记录(以下两种⽅式结果相同)
SELECT*FROM borrow bb WHERE DATE_ate_time,'%Y%m%d')=DATE_FORMAT(CURRENT_DATE(),'%Y%m%d');
givenSELECT*FROM borrow bb WHERE TO_ate_time)=TO_DAYS(now());
如上两种⽅式,都使⽤的等号=准确的表达了想要查询的时间段
(4)查询昨⽇的记录
SELECT*FROM borrow bb WHERE TO_DAYS(NOW())- TO_DAYS( bb.create_time)=1;
(5)查询近7天的数据(以下两种⽅式结果相同)丝绸之路英文
SELECT*FROM borrow bb WHERE TO_DAYS(NOW())- TO_DAYS( bb.create_time)<=7;
SELECT bb.borrow_ate_time FROM borrow bb where DATE_SUB(CURDATE(),INTERVAL7DAY)<=ate_time);(6)查询本⽉的数据
bressanoneenough什么意思SELECT*FROM borrow bb WHERE DATE_FORMAT( bb.create_time,'%Y%m')= DATE_FORMAT( CURDATE(),'%Y%m');
fsa(7)查询上个⽉的数据
SELECT*FROM borrow bb WHERE PERIOD_DIFF( date_format(now(),'%Y%m'), date_format( bb.create_time,'%Y%m'))=1有关时间的转换,还可以参考其他博客: