在我的表中,我有关于每日温度测量的微小数据。该表看起来像:
DateTime timestamp, Float temperature
我希望不同日期的温度在一定间隔之间,然后只显示温度在早上7点到晚上8点之间。
我知道如何在日期之间获取数据:
SELECT [timestamp],[temperature]
FROM [meteo_data]
WHERE [timestamp] BETWEEN '2012-11-10' and '2012-11-17'
如何实施时间限制(上午7点 - 晚上8点)?
非常感谢!!
答案 0 :(得分:4)
如果您在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'
编辑:当使用日期作为字符串时,建议使用ISO (yyyymmdd)
日期格式。即。
BETWEEN '20121110' and '20121117'
答案 1 :(得分:1)
DateTime和TimeStamp值应包含您需要的精度,所以
SELECT [timestamp],[temperature]
FROM [meteo_data]
WHERE [timestamp] BETWEEN '2012-11-10' and '2012-11-17'
AND RIGHT([timestamp], 12) BETWEEN '19:00:00.000' AND '20:00.00.000'
您可能需要根据数据库中的精度调整在RIGHT谓词中评估的字符数。但我们的想法是采用构成小时,分钟,秒和毫秒的所有部分,并将其限制在您需要的时间之间。