这是我的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中搜索那些指定的日期..
答案 0 :(得分:1)
我不知道为什么你创建了两个日期和时间而不是一列的原因,但是对于这个查询,你需要将它们组合起来。例如,您可以创建computed column并在其上创建索引。
此外,您可以尝试此解决方案,但如果您在routines.date
和routines.time
上拥有索引,则不会使用索引:
WHERE CAST(CONVERT(varchar(8),routines.date,112)+
' '+CONVERT(varchar(8),routines.time,108) as datetime) BETWEEN '".$fromDateTime."' AND '".$toDateTime."'