4
select TO_CHAR(to_date(sysdate, 'DD-MON-YYYY'), 'DAY') FROM DUAL; 

このクエリを実行すると、出力は SUNDAY でした。しかし、今日が火曜日 (2013 年 1 月 1 日) であることはわかっています。と

次に、クエリを次のように変更しました

select TO_CHAR(to_date('01-JAN-2013', 'DD-MON-YYYY'), 'DAY') FROM DUAL;

答えは火曜日でした。

その後、クエリを次のように変更しました

select TO_CHAR(to_date(sysdate+1, 'DD-MON-YYYY'), 'DAY') FROM DUAL;

答えは月曜日です。

sysdate を使用すると、出力として SUNDAY が表示されるのはなぜですか?

私はOracle dbが初めてです。私を助けてください。

4

3 に答える 3

6

これを使って:

 select TO_CHAR(sysdate, 'DAY') FROM DUAL;

あなたはこれを使用しています:

 to_date(sysdate, 'DD-MON-YYYY') 

date=1/1/0013 を与えているのは日曜日です

于 2013-01-01T05:44:30.197 に答える
2

sysdate のドキュメントはこちらを参照してください。Sysdate は既に日付データ型です。

to_date関数が最初のパラメーターを String ではなく取るため、クエリの例は不適切dateです。

以下の簡単なクエリを試してください。

     select TO_CHAR(sysdate, 'DAY') FROM DUAL; 

これは出力として返さTUESDAYれます。

于 2013-01-01T05:30:30.567 に答える
2

To_date文字列を日付に変換するために使用されます。はすでに日付であるためsysdate、add to_date を追加してはなりません。

于 2016-02-24T08:37:34.247 に答える