MySQL 时间查询 忽略时分秒
不知道大家在使用MySQL的时候有没有下面这种需求,求某一天的数据,。但是数据库的格式是datetime 如果你用= 是无法求出的,因为数据格式精准到了时分秒,而你用yyyy-MM-dd去匹配的时候是无法等于的。 例如: 这里我想求出 19年7月20号的数据是。
select * from testTable where EstimatedTime=2019-07-20
上面这条语句是得不到结果的,因为查询的时候会帮我们补齐 00:00:00时分秒的数据
实际上你的SQL就变成了
select * from testTable where EstimatedTime=2019-07-20 00:00:00
testTable 而数据库里面是没有的。这里要强调一下,如果有,则是可以查出来的,例如图中的31号的数据。
哪我们要如何查出含有第一条数据的结果呢?
方法1: 方法1就很简单暴力了,既然补全了,哪我们就查询20号到21号的数据就行
select * from testTable where EstimatedTime between 2019-07-20 and 2019-07-21
方法2: 虽然上面的方法已经可以得到我们想要的结果,但是在SQL拼接的时候我们需要2个参数,这样加大了我的们工作成本,作为一个懒惰的程序员是不允许这样的事情发生的。所以就有了方法2,运用数据库自带的函数 date_format
select * from testTable where date_format(EstimatedTime,%Y-%m-%d)=2019-07-20
下一篇:
redis缓存击穿如何解决