MySQL按时间查询,date、datetime和timestamp类型查询参数和返回的数据范围是不同的 |
您所在的位置:网站首页 › mysql日期yyyymmdd › MySQL按时间查询,date、datetime和timestamp类型查询参数和返回的数据范围是不同的 |
按时间范围查询,你一定纠结过开始时间和结束时间要不要格式化为00:00:00和23:59:59,也一定纠结过数据库的时间是按照什么类型比较的,between and可以用吗?反正我是纠结过。 数据库时间比较是按照什么类型去比较? 你一定见过按时间查询的SQL,时间参数用''修饰,那我们可以理解为数据库时间表面上是按字符串类型(字典顺序)去比较的,实战中我们也是这样用的,但实际上数据库时间是按照时间戳比较的(数据库源码中应该可以找到,反正我没看过源码)。我们不需要知道它按什么类型比较,只需要知道SQL用字符串就可以实现时间范围查询。 between and可以用于时间范围查询吗? 当然可以,但是对于不同类型的时间,应该使用相应的数据去查询,否则查询可能不是预期的结果集。 对于date,参数应该是 年月日 格式,例如between '2019-07-18' and '2019-07-18' 对于datetime/timestamp,参数应该是 年月日时分秒 格式,例如between '2019-07-18 00:00:00' and '2019-07-18 23:59:59' 以年月日格式为例(between '2019-07-18' and '2019-07-18'),MySQL查询的数据的范围如下: 类型数据的开始时间数据的结束时间date以 2019-07-18 00:00:00 开始以 2019-07-18 23:59:59 结束datetime以 2019-07-18 00:00:00 开始以 2019-07-18 00:00:00 结束timestamp以 2019-07-18 00:00:00 开始以 2019-07-18 00:00:00 结束示例 数据如下,均按照年月日的参数格式查询数据 date查询 select * from time_test where date_type between '2019-07-16' and '2019-07-18' ORDER BY date_type; select * from time_test where date_type >= '2019-07-16' and date_type = '2019-07-16' and datetime_type = '2019-07-16' and timestamp_type |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |