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

make_date()がPostgreSQLでどのように機能するか

    PostgreSQLでは、make_date() この関数を使用すると、個別の年、月、日のフィールドから日付を作成できます。

    各日付部分は整数として提供されます 、結果は日付として返されます 。

    構文

    この関数の構文は次のとおりです。

    make_date(year int, month int, day int)

    yearmonth 、およびday 日付の年、月、日を表す整数です。

    これがデモンストレーションの基本的な例です。

    SELECT make_date(2020, 07, 25);

    結果:

    2020-07-25

    そして、それが日付のデータ型を返すことを確認できます 次のクエリで。

    SELECT pg_typeof(make_date(2020, 07, 25));

    結果:

    date

    pg_typeof() 関数は引数のデータ型を返すので、make_date()を渡しました 引数として..

    範囲外

    いずれかの引数が日付部分の可能な値の範囲外である場合、「範囲外」エラーが発生します。

    SELECT make_date(2020, 17, 25);

    結果:

    ERROR: date field value out of range: 2020-17-25

    ここでも月は00です:

    SELECT make_date(2020, 00, 25);

    結果:

    date field value out of range: 2020-00-25

    引数として文字列を渡す

    Postgresのドキュメントには、引数は整数である必要があると記載されていますが、各引数が適切な範囲内にある限り、文字列の受け渡しは機能しているようです(おそらく、暗黙的に整数に変換されるためです)。

    SELECT make_date('2020', '07', '25');

    結果:

    2020-07-25

    ここでも、pg_type()を使用できます 結果が実際に日付であることを確認します データ型。

    SELECT pg_typeof(make_date('2020', '07', '25'));

    結果:

    date

    ただし、整数に変換した後も各引数が有効であることを確認する必要があります。有効でない場合は、次のようなエラーが発生します。

    SELECT make_date(2020, 'July', 25);

    結果:

    ERROR: invalid input syntax for type integer: "July"
    LINE 1: SELECT make_date(2020, 'July', 25);

    1. SQLite Group By

    2. 初心者のための5つの実用的なデータベースのヒント

    3. エラー、文字列、またはバイナリデータは、挿入しようとすると切り捨てられます

    4. エラー:列が存在しません