sql-server - 从列中检索日期部分

标签 sql-server

列名为rcvdate,是datetime类型,其值是这样的:

2009-10-20 10:00:00

我想做一个选择,我的查询:

SELECT * 
FROM data 
WHERE rcvdate = '2009-10-20' 

不工作,我期待可运行的查询,因为我检查了很多查询但它们没有工作。

最佳答案

如果您想要一天的所有行,请检查一个时间间隔:

SELECT * 
FROM data 
WHERE rcvdate >= '20091020' AND
      rcvdate < DATEADD(day, 1, '20091020')

从 SQL Server 2008 开始,您可以改用它:

SELECT * 
FROM data 
WHERE CAST(rcvdate as DATE) = '2009-10-20'

Cast to date is sargable but is it a good idea?

关于sql-server - 从列中检索日期部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9868232/

相关文章:

c# - 使用 Fluent.NHibernate,如何根据 Select 语句进行插入

sql - 将字符串变量转换为 GUID

sql - 无法重命名临时表的列

详细信息后的 SQL 摘要行

sql-server - SQL Server 写入一次列

php - mssql_execute 失败, "stored procedure execution failed"

sql-server - SSIS发送邮件文件附件失败

SQL 将多个局部变量输出到一列中

sql-server - 修改存储过程的架构?

sql-server - 使用 "WHERE A=1 OR A=2 clause"SELECT 查询糟糕的执行计划