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' を試しました) は奇妙に見えますが、少なくともコンパイル/実行エラーは発生しません。「4/9/2012」と「04/09/2012」を試したところ、「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 に答える