使用大于下午4点的时间选择所有数据

use*_*998 8 sql sql-server sql-server-2005

我需要datatimestamp在SQL Server Management Studio Microsoft SQL Server 2005 - 9.00.4060.00(X64)DB表中每天选择包含时间> 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
Run Code Online (Sandbox Code Playgroud)

Lit*_*les 16

很难阅读您的问题,但假设您确实在使用datetime数据类型,您可以使用datepart查找时间大于下午4点的任何日期:

WHERE datepart(hh, YourDate) > 16
Run Code Online (Sandbox Code Playgroud)

由于您现在也需要分钟,如果您想在下午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)
Run Code Online (Sandbox Code Playgroud)

基本上,您使用convert日期和时间样式来转换日期以将日期转换为时间字符串,然后转换回datetime与您所需时间的比较.

SQL Server 2008+

SELECT Yield, [Date], ProductType, Direct 
FROM MIAC_CCYX 
WHERE CAST([Date] as time) > CAST('16:45' as time)
Run Code Online (Sandbox Code Playgroud)