sql - 选择时间大于下午 4 点的所有数据

标签 sql sql-server sql-server-2005

我需要在 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/

相关文章:

mysql - 将 CSV 数据导入到单独的 MYSQL 表中

c# - SQL获取列信息

sql - mysql命令超时错误

php - 如何对相同的行求和并找到 mySQL 中高于平均水平的行?

sql - Oracle中如何忽略字符串末尾的空值?

sql - 根据来自另一列的不同值计算值

SQL Server 删除时间戳超过 1 个月的行

python - 在Python中,是否可以使用Active Directory密码身份验证连接Azure SQL Server?

sql-server - 使用桌面应用程序部署 SQL Server Express 数据库?

sql - 如何在不满足条件时显示 NULL