我需要在有两年数据的SQL Server Management Studio Microsoft SQL Server2005- 9.00.4060.00 (X64) DB表中选择每天datatimestamp中包含时间>4 4pm的数据。做这件事最好的方法是什么?我的时间戳格式如下: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发布于 2012-11-27 04:24:53
很难理解您的问题,但假设您确实在使用datetime数据类型,您可以使用datepart查找时间大于下午4点的任何日期:
WHERE datepart(hh, YourDate) > 16因为你现在也需要分钟,如果你想要下午4:45之后的记录,你可以将你的日期转换为这样的时间:
SQL Server2000/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转换日期,将日期转换为时间字符串,然后再转换回datetime,以便与所需的时间进行比较。
SQL Server 2008+
SELECT Yield, [Date], ProductType, Direct
FROM MIAC_CCYX
WHERE CAST([Date] as time) > CAST('16:45' as time)发布于 2012-11-27 04:40:16
无论你的约会对象是什么,这都会起作用。这不会比较日期。相反,Datepart()将从日期时间中提取小时元素,并与您指定的时间(例如,在您的示例中为下午4点)进行比较。
SELECT * from <table> where DATEPART(hh, ModifiedDate) >= 16我假设ModifiedDate作为列名。这将返回从下午4点到晚上11:59:59的数据编辑:我已经根据MS SQL server 2012进行了检查。它还将与datetime格式一起工作。
https://stackoverflow.com/questions/13572335
复制相似问题