经测试 mysql 的 between and 是 左闭右闭 的,用于查询某一天数据的写法

54 篇文章 1 订阅

经测试 mysql 的 between and 是 左闭右闭 的,也就是包括查询的 开始值 和 结束值。

所以用 mysql 的 between and 查询某一天的记录,应该写成:

SELECT * from time_table ta
where ta.CREATE_TIME
between '2019-03-01 00:00:00'
and '2019-03-01 23:59:59'     


左闭右闭,那就还可以写成:
where ta.CREATE_TIME >= '2019-03-01 00:00:00'
and ta.CREATE_TIME <= '2019-03-01 23:59:59'

 

不能写成:

SELECT * from time_table ta
where ta.CREATE_TIME
between '2019-03-01 00:00:00'
and '2019-03-02 00:00:00'

也不能写成:
SELECT * from time_table ta
where ta.CREATE_TIME
between '2019-03-01'
and DATE_ADD('2019-03-01', INTERVAL 1 DAY);  // DATE_ADD 天数增加1

因为如果数据库里有 2019-03-02 00:00:00 这个时刻的记录,那也会被一起查出来,
那结果就是 03-01 和 03-02 两天的数据了。


 

另外要注意 ‘00:00:00’ ,在查询时不要写成 ‘24:00:00’,会出问题。
这个问题参考:  https://www.cnblogs.com/lj312/p/7238211.html

 

还有日期字符串的格式要符合 yyyy-MM-dd HH:mm:ss,否则查询可能会出问题。
如写成 '2009-12-1 10:5:5' 这样格式的字符串, 查询就可能会出问题。
这个问题参考:  https://qhuwn.iteye.com/blog/544338

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值