問題:
Oracleで現在の日付(時刻なし)を取得したい。
解決策1(時間としてゼロを気にしない場合):
SELECT TRUNC(CURRENT_DATE) AS current_date FROM dual;
たとえば、2021年6月16日にこのクエリを実行すると、結果テーブルは次のようになります。
current_date |
---|
2021-06-16T00:00:00Z |
ディスカッション:
Oracleには、時刻なしで日付のみを格納するデータ型はありません。ただし、時間の代わりにゼロを気にしない場合は、日付をDATE
に保存するだけです。 データ型(Oracleに日付と時刻の両方を格納します)。現在の日付と時刻をDATE
として取得するには 値の場合、CURRENT_DATE
を使用するだけです。 。時間を取り除く(代わりにゼロを使用する)には、日付を切り捨てる必要があります:
SELECT TRUNC(CURRENT_DATE) AS current_date FROM dual;
解決策2(時刻の代わりにゼロではなく日付だけが必要な場合):
SELECT TO_CHAR(CURRENT_DATE, 'yyyy-MM-dd') AS current_date FROM dual;
たとえば、2021年6月16日にこのクエリを実行すると、結果テーブルは次のようになります。
current_date |
---|
2021-06-16 |
ディスカッション:
VARCHAR2
のテキストを取得するには 日付を格納するタイプの場合、TO_CHAR()
を使用できます Oracleの関数。変換する日付/タイムスタンプを最初の引数として指定し、日付を2番目の引数として格納する形式で指定する必要があります。
現在の日付が必要なので、最初の引数はCURRENT_DATE
です。 。 2番目の引数はあなたの選択です。例:'yyyy-MM-dd'
'year-month-day'の略で、月はテキストではなく数値です。次の表は、2021年6月16日の日付形式の例とそれぞれの出力を示しています。
日付形式 | 結果 |
---|---|
'YYYY-MM-DD' | 2021-06-16 |
'YYYY / MM / DD' | 2021/06/16 |
'YYYY MM DD' | 2021 06 16 |
'DD-MON-YYYY' | 2021年6月16日 |
'DD-MON-YY' | 21年6月16日 |
'FMMonth DD、YYYY' | 2021年6月16日 |
日付の形式について詳しくは、こちらをご覧ください。