在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')看起来很奇怪,但至少我没有得到编译/执行错误。当我尝试“4/9/2012”和“04/09/2012”时,它说“ORA-01853:不是有效的月份”
我如何输入日期告诉它我想查看2012年4月9日的日期?
答案 0 :(得分:8)
最安全的使用TO_DATE:
AND AVAILABLEDATE = TO_DATE('09/Apr/2012', 'DD/Mon/YYYY')
答案 1 :(得分:5)
我喜欢使用date literal:
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'
你确定你的日期没有时间吗?