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'
  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值