我需要选择包含时间的数据> SQL Server Management Studio中的每天datatimestamp
下午4点Microsoft SQL Server 2005 - 9.00.4060.00(X64)数据库表,其中包含两年的数据。最好的方法是什么?我的时间戳有以下格式: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
答案 0 :(得分:15)
很难阅读您的问题,但假设您确实使用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投射日期以将日期转换为时间字符串,然后转换回datetime
以与您所需的时间进行比较。
SQL Server 2008 +
SELECT Yield, [Date], ProductType, Direct
FROM MIAC_CCYX
WHERE CAST([Date] as time) > CAST('16:45' as time)
答案 1 :(得分:0)
这将适用于您的日期。这不会比较日期。相反,Datepart()将使用您给定的时间从日期时间和comapre中提取小时元素(例如,在您的情况下为4 P.M.)
SELECT * from <table> where DATEPART(hh, ModifiedDate) >= 16
我假设ModifiedDate为列名。这将从下午4点返回数据。到晚上11:59:59 编辑:我已经针对MS SQL Server 2012进行了检查。此外,它还可以使用日期时间格式。