sql - 如何从 SQL 表中选择其中 TIMESTAMP 是特定日期

标签 sql oracle select timestamp where-clause

我正在尝试执行一个查询,其中 TIMESTAMP 字段 = 到特定日期,但我的查询不起作用:

该字段的类型为 TIMESTAMP(6),我之前只使用过 DATE/DATETIME 字段。以下是此处存储的值的示例:04-OCT-13 12.29.53.000000000 PM

这是我的 SELECT 语句:

SELECT * FROM SomeTable WHERE timestampField = TO_DATE('2013-10-04','yyyy-mm-dd')

我没有检索到任何结果,我假设这与它与时间戳的时间部分不匹配有关

最佳答案

如果您想要特定日期发生的每条记录,那么这应该可行:

SELECT * FROM SomeTable
  WHERE timestampField >= TO_TIMESTAMP( '2013-03-04', 'yyyy-mm-dd' )
    AND timestampField < TO_TIMESTAMP( '2013-03-05', 'yyyy-mm-dd')

这可能会利用 timestampField 上的索引(如果存在)。另一种方法是:

SELECT * FROM SomeTable
  WHERE TRUNC(timestampField) = TO_DATE( '2013-03-04', 'yyyy-mm-dd' )

在这种情况下,您可能需要在 TRUNC(timestampField) 上使用基于函数的索引。

(请注意,应用于 TIMESTAMP 的 TRUNC 返回一个 DATE。)

关于sql - 如何从 SQL 表中选择其中 TIMESTAMP 是特定日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19274295/

相关文章:

java - HSQLDB:使用 java 插入/获取日期

SQL TOP 结果按字段分组

ruby-on-rails - Formtastic 复选框提交带有空白条目的列表(除了选择的 ID)

具有未知列名的 MySQL SELECT

MySQL 查询按天对时间戳进行分组

mysql - 带有内部连接和子查询的 SQL

如果 SELECT 不返回任何内容,MySQL 将拒绝 INSERT INTO

string - 甲骨文 SQL : Build a CASE statement with SUBSTR

sql - 检查某个行是否存在,否则选择不同的行

database - Talend如何将一个数据库复制到另一个数据库