sql - 如何过滤 DateTime 列的时间部分

标签 sql sql-server sql-server-2008-r2

我想根据特定时间从表中检索数据,所以我在下面使用了这个查询。

    select * from a
    where convert(smalldatetime,date,datepart(hh,date)) ='09:12:00'

但结果我没有得到任何行。那么我应该怎么做才能达到预期的效果呢?

最佳答案

你可以直接转换为varchar,如下所示

SELECT * FROM a
WHERE CONVERT(VARCHAR(8), [date], 108) = '09:12:00'

关于sql - 如何过滤 DateTime 列的时间部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32066347/

相关文章:

sql-server - 如何在不需要分布式事务的情况下存储存储过程的结果?

reporting-services - 无法制作商业智能项目。如何解决 "Configuration system failed to initialize"错误消息?

mysql - SQL 语法错误。为了获得成功的结果,正确的解决方案或正确的语法是什么?

c# - 实体数据未知时的数据库设计?

sql - 计算 SQL 中不同多列的出现次数

c# - 如果十进制参数的精度错误,查询速度会变慢

sql - 选择 IN() 列表中未找到的内容

sql - 如何从 SQL Server 获取最近两个小时的记录

SQL IF EXISTS 带 OR 条件

SQL Server 2008根据机器设置获取DATETIMEOFFSET