T-SQL 从特定时间之间的多天中选择数据

Enr*_*ico 2 t-sql datetime sql-server-2008

在我的表中,我有关于每日温度测量的详细数据。该表看起来像:

DateTime timestamp, Float temperature
Run Code Online (Sandbox Code Playgroud)

我想在某个时间间隔之间的不同日期显示温度,然后只显示上午 7 点到晚上 8 点之间的温度。

我知道如何获取日期之间的数据:

SELECT [timestamp],[temperature]
  FROM [meteo_data]
  WHERE [timestamp] BETWEEN '2012-11-10' and '2012-11-17' 
Run Code Online (Sandbox Code Playgroud)

如何实施时间限制(上午 7 点至晚上 8 点)?

非常感谢!!

Kaf*_*Kaf 5

如果你在SQL Server 2008 or above,你可以使用TIME datatype

SELECT [timestamp],[temperature]
FROM [meteo_data]  
WHERE [timestamp] BETWEEN '2012-11-10' and '2012-11-17'
AND CONVERT(TIME,[timestamp]) BETWEEN '19:00:00' AND '20:00:00'
Run Code Online (Sandbox Code Playgroud)

编辑:还建议ISO (yyyymmdd)在使用日期作为字符串时使用日期格式。IE

BETWEEN '20121110' and '20121117' 
Run Code Online (Sandbox Code Playgroud)