MySql在2个日期范围内查询

问题描述 投票:-4回答:1

你好我有一个问题,我有一个列名是日志,并有这些数据:

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'

结果只是:06-9-2018 12:07:13

为此,我的查询从7月6日开始到9月7日结束,为什么不显示04-9-2018 17:53:48

对于更多我建立的数据库,这是链接:http://sqlfiddle.com/#!9/f4f2ca/3

mysql sql sqlite
1个回答
1
投票

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

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

现在将其更改为datetime并检查它是否有效

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
© www.soinside.com 2019 - 2024. All rights reserved.