0

我必须查询特定日期和时间范围内的数据。我在 heroku 中有一个 ClearDB 数据库,有 2 个字段来保存日期和时间,这些字段是 varchar 类型,而不是 DATE。 这里的数据结构,不要看字段名称,为了更好地理解,我在下面的查询中进行了更改。

我有这个有效的查询:

SELECT 
DISTINCT dates, times, lat, long, ide FROM data 
WHERE ide = 'lcg1234' AND (dates>= '2016-01-27' AND times>='15:00:00') 
 AND (dates<= '2016-01-29' AND times<='16:00:00') 
 ORDER BY times ASC

问题是当我将最后一个 AND 中的时间更改为较低的值时,如下所示:

SELECT 
DISTINCT dates, times, lat, long, ide FROM data 
WHERE ide = 'lcg1234' AND (dates>= '2016-01-27' AND times>='15:00:00') 
AND (dates<= '2016-01-29' AND times<='01:00:00') 
ORDER BY times ASC

它不起作用,为什么会发生这种情况?任何想法都欢迎!对不起我的英语不好。

4

1 回答 1

0

您应该结合日期和时间列并制作自定义日期时间字段。然后进行比较。

检查以下查询是否有效。

SELECT 
DISTINCT dates, times, lat, long, ide FROM data 
WHERE ide = 'lcg1234' 
AND CONCAT(`dates`,' ',`times`) >= '2016-01-27 15:00:00' 
AND CONCAT(`dates`,' ',`times`) <= '2016-01-29 01:00:00'
ORDER BY times ASC
于 2016-01-29T22:21:46.473 回答