以下のSQLでクエリを実行しています。私を助けてください。
select to_date(sysdate, 'DD MONTH YYYY') , to_date(sysdate, 'yyyy/mm/dd hh24:mi:ss')
from dual where
to_date(sysdate, 'DD MONTH YYYY') < to_date(sysdate, 'yyyy/mm/dd');
1) to_date(sysdate, 'DD MONTH YYYY') これにより、時刻のない Date オブジェクトが得られます (時刻が 00:00 の場合もあります)。
私は正しいですか?そうでない場合、時間を含まないDateオブジェクトのみを取得するにはどうすればよいですか?
2) 上記のクエリから、to_date(sysdate, 'yyyy/mm/dd') は to_date(sysdate, 'DD MONTH YYYY') よりも大きいようです。どうして ??
アップデート
1) 上記の URL での私の目的は、to_date 関数が日付のみ (または時間と共に) を返すことを確認することですが、形式 'DD MONTH YYYY' には時間文字 (hh:mm ..) が含まれていません。
2) 応答から、to_date は常に時刻付きの日付を返すことがわかりましたが、時刻の文字については触れていません。
3) 最後に DATE のみを取得するには、 trunc() / to_date(to_char(sysdate,'mm-dd-yyyy'),'mm-dd-yyyy') を使用する必要があります
以下を確認してください
select to_char(trunc(sysdate), 'yyyy/mm/dd hh24:mi:ss'),
to_char(to_date(to_char(sysdate, 'yyyy-MM-dd'),'yyyy/mm/dd hh24:mi:ss'),'yyyy/mm/dd hh24:mi:ss')
from dual;
-->hh24 :24 は、00:00 形式を取得するために重要です。