我需要在 SQL Server Management Studio Microsoft SQL Server 2005 - 9.00.4060.00 (X64) 数据库表中每天选择包含 datatimestamp
时间 > 下午 4 点的数据,该表包含两年的数据。最好的方法是什么?我的时间戳具有以下格式:DATETIME, '2005-10-13 16:00:00', 102
。我每天下午随机时间都有数据。我需要每天下午4点之后获取数据。不只是一天。
例如,我尝试了一天这样:
SELECT Yield, Date, ProductType, Direct
FROM MIAC_CCYX
WHERE (Date < CONVERT(DATETIME, '2005-10-13 16:00:00', 102)) Thanks for help
最佳答案
很难阅读您的问题,但假设您确实使用 datetime
数据类型,则可以使用 datepart
查找时间大于下午 4 点的任何日期:
WHERE datepart(hh, YourDate) > 16
由于您现在也需要分钟数,因此如果您想要下午 4:45 之后的记录,您可以将日期转换为如下时间:
SQL Server 2000/2005
SELECT Yield, [Date], ProductType, Direct
FROM MIAC_CCYX
WHERE cast(convert(char(8), [Date], 108) as datetime) > cast('16:45' as datetime)
本质上,您使用 convert
's Date and Time styles 来转换日期将日期转换为时间字符串,然后转换回日期时间
以与您所需的时间进行比较。
SQL Server 2008+
SELECT Yield, [Date], ProductType, Direct
FROM MIAC_CCYX
WHERE CAST([Date] as time) > CAST('16:45' as time)
关于sql - 选择时间大于下午 4 点的所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13572335/