如何按时间(大于或小于)筛选SQL?

如何按时间(大于或小于)筛选SQL?,sql,sqlite,sql-like,spatialite,Sql,Sqlite,Sql Like,Spatialite,我想从数据集中查询一个子集。每行具有以下格式的时间戳: 2014-04-25T17:25:14 2014-04-25T18:40:16 2014-04-25T18:44:57 2014-04-25T19:10:32 2014-04-25T20:22:12 ... 目前,我使用以下查询选择基于时间的子集: time LIKE '%2014-04-25T18%' OR time LIKE '%2014-04-25T19%' 当您开始按分钟或秒进行过滤时,这会变得非常复杂 有没有一种方法可以运行一

我想从数据集中查询一个子集。每行具有以下格式的时间戳:

2014-04-25T17:25:14
2014-04-25T18:40:16
2014-04-25T18:44:57
2014-04-25T19:10:32
2014-04-25T20:22:12
...
目前,我使用以下查询选择基于时间的子集:

time LIKE '%2014-04-25T18%' OR time LIKE '%2014-04-25T19%'
当您开始按分钟或秒进行过滤时,这会变得非常复杂

有没有一种方法可以运行一个查询,例如

time > '%2014-04-25T18%' AND time < '%2014-04-25T19%'
时间>“%2014-04-25T18%”和时间<“%2014-04-25T19%”
正则表达式也可以


数据库是一个数据库。时间列的类型为VARCHAR。

如果日期被视为字符串并基于上述示例:

time LIKE '%2014-04-25T18%' AND time <> '%2014-04-25T18:00:00:000'
感谢您的帖子,我提出了以下解决方案:

SELECT * FROM data 
WHERE DATETIME(
  substr(time,1,4)||'-'||
  substr(time,6,2)||'-'||
  substr(time,9,2)||' '||
  substr(time,12,8)
) 
BETWEEN DATETIME('2014-04-25 18:00:00') AND DATETIME('2014-04-25 19:00:00');

该时间列的数据类型是什么?你用什么数据库引擎?@mhasan。这是表示时区的一种方式。这些数字是格林尼治标准时间的偏移量。@GordonLinoff否。我刚刚切断了时间字符串,以按小时过滤。
SELECT * FROM data 
WHERE DATETIME(
  substr(time,1,4)||'-'||
  substr(time,6,2)||'-'||
  substr(time,9,2)||' '||
  substr(time,12,8)
) 
BETWEEN DATETIME('2014-04-25 18:00:00') AND DATETIME('2014-04-25 19:00:00');