sql - 如何正确处理查询约束中的日期

标签 sql database oracle constraints

我目前正在使用以下查询来获取 2010 年 6 月完成的所有检查:

select inspections.name
from inspections
where
  to_char(inspections.insp_date, 'YYYY') = 2010 and
  to_char(inspections.insp_date, 'MM') = 06;

但这感觉有点尴尬。难道没有更好的方法吗?看着http://infolab.stanford.edu/~ullman/fcdb/oracle/or-time.html似乎并非如此。我正在使用 Oracle,如果它有所作为的话。

谢谢

最佳答案

我喜欢尽可能使用范围比较,因为优化器可以将其用于索引扫描:

select inspections.name
  from inspections
 where inspections.date >= DATE '2010-06-01'
   and inspections.date < DATE '2010-07-01'

关于sql - 如何正确处理查询约束中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4876771/

相关文章:

mysql - 减去具有不同行数的不同表的两列

database - Sharepoint 2010 数据库 - 如何从 SQL 2012 AlwaysOn 迁移到独立 SQL 2012

c# - Microsoft SQL Server 如何将数据从一个表复制到另一个表

java - 使用文本字段插入数据很困难(jdbc swing)

database - 在 Oracle 12c 中,连接到数据库后无法创建用户名

Java JDBC 无法连接到 MSSQL Server

sql - SQL Server 中的行偏移

php - 如何通过数据库中的 Bootstrap 创建动态模态窗口?

sql - 总是在 SQL 中显示小数位?

php - 从列数不同的两个表中选择 *