sql - 选择 WHERE 日期 = 天

标签 sql sql-server sql-server-2008

我有一个包含 dateTime 类型列的表。我想做一个查询,选择发生在该日期的所有行。基本上,

SELECT * FROM Table
WHERE [timeStamp] = '02-15-2003'

但这仅返回 [timeStamp] 为 '02-15-2003 00:00:00.000' 的行,但我真的想要当天任何时间的行。

最佳答案

如果你有索引,你会想要一些不会阻止索引被使用的东西:

SELECT *
FROM Table 
WHERE [timeStamp] >= '20030215'
      AND [timeStamp] < '20030216'

您可以对 [timeStamp] 进行截断操作列摆脱任何时间部分(依赖于实现),但这可能会损害执行计划。不幸的是,您确实必须查看执行计划才能看到这一点,因为有时优化器对某些函数很聪明,有时则不然。

关于sql - 选择 WHERE 日期 = 天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10541447/

相关文章:

c# - 如何从连接表中检索数据?

sql - 获取 sql 列使用的 XML 模式

有关(过度复杂?)模式的SQL体系结构建议

mysql - Where 子句中的未知列

sql-server - 如何在 HBase 中查看 3 版本的数据

sql-server - dbml 文件 - 创建数据库

sql-server-2005 - SQL Server 中具有动态列的数据透视表

sql - 如何在 SQL Server 中使用 nvarchar 变量为 unicode 使用前缀 'N'?

sql - 根据另一个列值更新具有排序号的列

java - java中有一种方法可以将%(sql)放入其中。像这样 "select first_name from employees where first_name like ' A%e'”