MySQL之间的2个日期范围查询

时间:2018-09-07 13:00:41

标签: mysql sql sqlite

你好,我有一个问题,我的一个列名称是日志,并具有以下数据:

04-9-2018 17:53:48
06-9-2018 12:07:13
16-11-2018 12:04:17
23-11-2018 12:11:59

我的查询是:

SELECT * 
FROM `table` 
WHERE logs BETWEEN '06-7-2018 00:53:48' AND '07-9-2018 23:53:48'

结果就是: 2018年9月6日12:07:13

为此,我的查询从 7月06日开始,到 9月7日结束,原因是为什么没有显示 04-9-2018 17:53:48

对于更多内置数据库,这是链接:http://sqlfiddle.com/#!9/f4f2ca/3

1 个答案:

答案 0 :(得分:1)

因为您的日志数据类型不是日期时间

您在表创建时定义的logs varchar(250)类型

现在将其更改为日期时间并检查其是否可用

http://sqlfiddle.com/#!9/5c36d/1

CREATE TABLE IF NOT EXISTS `table` (
  `logs` datetime  NOT NULL

) DEFAULT CHARSET=utf8;
INSERT INTO `table` (`logs`) VALUES
  ('2018-09-04 17:53:48'),

  ('2018-09-06 12:07:13'),

  ('2018-11-16 12:04:17'),

  ('2018-11-23 12:11:59');

select * from `table` where logs BETWEEN 
'2018-07-06 00:53:48' AND '2018-09-07 23:53:48'

logs
2018-09-04T17:53:48Z
2018-09-06T12:07:13Z