5

在 Toad 编辑器中,我有这个 SQL:

SELECT INTERLOPERABCID,AVAILABLEDATE,
AVAILABLEQHR,CARPHONEID,
TRUNC((AVAILABLEQHR-1)/12) "COL",
MOD(AVAILABLEQHR-1,12) "ROW"
FROM ABC.INTERLOPERAVAILABILITY
WHERE INTERLOPERABCID>42
AND AVAILABLEDATE='09/Apr/2012'

...但它不返回任何行,即使我在表中看到许多 AVAILABLEDATE 值 = '4/9/2012' 的记录

日期格式('09/Apr/2012';我也试过'04/Sep/2012')看起来很奇怪,但至少我没有得到任何编译/执行错误。当我尝试“2012 年 4 月 9 日”和“2012 年 4 月 9 日”时,它说“ORA-01853:无效月份”

我必须如何输入日期才能告诉它我想查看 2012 年 4 月 9 日的日期?

4

2 回答 2

9

使用 TO_DATE 最安全:

AND AVAILABLEDATE = TO_DATE('09/Apr/2012', 'DD/Mon/YYYY')
于 2012-04-18T19:14:59.503 回答
5

我喜欢使用日期文字

SELECT INTERLOPERABCID,AVAILABLEDATE,
AVAILABLEQHR,CARPHONEID,
TRUNC((AVAILABLEQHR-1)/12) "COL",
MOD(AVAILABLEQHR-1,12) "ROW"
FROM ABC.INTERLOPERAVAILABILITY
WHERE INTERLOPERABCID>42
AND AVAILABLEDATE = DATE '2012-04-09'

您确定您的日期中没有时间部分吗?

于 2012-04-18T19:14:17.827 回答