sql - 通过只知道日期而不知道时间来从表中选择(ORACLE)

标签 sql oracle date

我试图通过知道列中的日期包含日期和时间来检索表中的记录。

假设我有一个名为 t1 的表,其中仅包含两列 namedate

存储在日期列中的数据如下 8/3/2010 12:34:20 PM

例如,我想通过此查询检索此记录(注意我没有输入时间):

Select * From t1 Where date="8/3/2010"

这个查询没有给我任何结果!

如何通过只知道日期而不知道时间来检索日期

最佳答案

DATE 是 Oracle 中的保留关键字,因此我使用列名 your_date 来代替。

如果您在 your_date 上有索引,我会使用

WHERE your_date >= TO_DATE('2010-08-03', 'YYYY-MM-DD')
  AND your_date <  TO_DATE('2010-08-04', 'YYYY-MM-DD')

之间<​​:

WHERE your_date BETWEEN TO_DATE('2010-08-03', 'YYYY-MM-DD')
                    AND TO_DATE('2010-08-03 23:59:59', 'YYYY-MM-DD HH24:MI:SS')

如果没有索引或者记录不是太多

WHERE TRUNC(your_date) = TO_DATE('2010-08-03', 'YYYY-MM-DD')

应该足够了。 TRUNC不带参数从 DATE 中删除小时、分钟和秒。

<小时/>

如果性能确实很重要,请考虑放置 Function Based Index在该列上:

CREATE INDEX trunc_date_idx ON t1(TRUNC(your_date));

关于sql - 通过只知道日期而不知道时间来从表中选择(ORACLE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2399753/

相关文章:

SQL - 指定的字母顺序

php - 将表格中的日期与今天的日期进行比较

sql - 从表创建花名册

sql - SQL Server 2008 中的循环插入语句

mysql - 使用 NodeJS 的 mysql 中的日期未正确保存(比实际日期少一天)

javascript - 在 JavaScript 中从周一开始按周数获取天数数组

java - 无法在 java 中获取日期正则表达式 mm/dd/yyyy

mysql - 如何进行 SQL 查询以返回 checkin 和 checkout 之间的时间差?

sql - Oracle查询以树的形式获取数据

javascript - 使用 OPENROWSET 通过 SQL Server 访问 Oracle DB