1

我想根据给定的日期值从数据库中获取记录。我使用 Timestamp 作为列类型。我使用查询作为

SELECT * 
FROM table1
WHERE LAST_UPDT_S = to_date('23-AUG-12')

得到空表。表中存在记录。

请帮我解决这个问题。

提前致谢。

4

3 回答 3

1

试试这个,

SELECT * 
FROM table1 
WHERE LAST_UPDT_S = to_date('23-AUG-12', 'DD-MON-YY')

请参阅:TO_DATE 手册

于 2012-08-24T10:02:04.617 回答
1

可能是您的表格包含带有时间部分的日期,因此请尝试使用:

SELECT * 
FROM table1
WHERE Trunc(LAST_UPDT_S) = to_date('23-AUG-12')
于 2012-08-24T10:14:30.140 回答
1

通常最好使用时间范围 - 如果存在索引,这会打开使用索引的可能性:

SELECT * 
FROM table1
WHERE LAST_UPDT_S >= DATE '2012-08-23'
  AND LAST_UPDT_S < DATE '2012-08-24'

(另外,最好不要在没有指定日期格式的情况下使用 TO_DATE,否则它将使用当前会话的 NLS 设置。)

于 2012-08-27T03:22:03.477 回答