带有时间和日期的SQL查询

时间:2014-05-11 18:27:49

标签: sql sql-server

这是我的SQL查询的一部分,我非常不确定何时我从日期11.05.2014到15.05.2014进行查询,时间从11.00.00到21.00.00。

问题是例如12.05.2014 23.00.00的结果不会显示,因为它不在时间之间和之间。我知道我只能在没有时间的情况下搜索日期,但我也希望有时间获得更具体的结果。这是解决这个问题的方法吗?

这个sql查询只是更大的sql查询的一部分。感谢。

WHERE routines.date between '".$fromDate."' AND '".$toDate."'

AND routines.time between '".$fromTime."' AND '".$toTime."'

要更正:

sql查询的问题是它将显示13.05.2014,13.05.2014等的记录。但是那些时间仅在11.00.00和21.00.00之间,但是24小时。我只希望sql查询从Time和To中搜索那些指定的日期..

1 个答案:

答案 0 :(得分:1)

我不知道为什么你创建了两个日期和时间而不是一列的原因,但是对于这个查询,你需要将它们组合起来。例如,您可以创建computed column并在其上创建索引。

此外,您可以尝试此解决方案,但如果您在routines.dateroutines.time上拥有索引,则不会使用索引:

WHERE CAST(CONVERT(varchar(8),routines.date,112)+
      ' '+CONVERT(varchar(8),routines.time,108) as datetime) BETWEEN '".$fromDateTime."' AND '".$toDateTime."'