sql >> データベース >  >> RDS >> Oracle

Oracleで現在の日付を取得する方法

    問題:

    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日

    日付の形式について詳しくは、こちらをご覧ください。


    1. 別のテーブルに存在しない1つのテーブルからすべてのレコードを選択するにはどうすればよいですか?

    2. データセットが変更されたときにSqlDependencyがOnChangeイベントを発生させない

    3. ORACLEで、最終値がコンマで区切られている2つのテーブルを使用して、複数の行行を1つに結合する方法はありますか?

    4. SQLite Count()をGROUP BYと組み合わせて、結果セットに「カウント」列を追加します