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

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

    PostgreSQLでは、make_time() 関数を使用すると、時、分、秒のフィールドから時間を作成できます。

    構文

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

    make_time(hour int, min int, sec double precision)

    hour 時間の部分、min は分の部分であり、sec 秒の部分です。

    時間と分は整数として提供されます 、秒は倍精度として提供されます 。

    結果は時間として返されます 。より正確には、タイムゾーンのない時間として返されます 。

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

    SELECT make_time(7, 45, 15.08);

    結果:

    07:45:15.08

    そして、次のクエリで返品タイプを確認できます。

    SELECT pg_typeof(make_time(7, 45, 15.08));

    結果:

    time without time zone

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

    範囲外

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

    SELECT make_time(25, 45, 15.08);

    結果:

    ERROR: time field value out of range: 25:45:15.08

    引数として文字列を渡す

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

    SELECT make_time('7', '45', '15.08');

    結果:

    07:45:15.08

    ここでも、pg_type()を使用できます 結果のデータ型を確認します。

    SELECT pg_typeof(make_time('7', '45', '15.08'));

    結果:

    time without time zone

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

    SELECT make_time('25', '45', '15.08');

    結果:

    ERROR: time field value out of range: 25:45:15.08

    1. クエリを介してMySQLでデータベース構造を取得する方法

    2. 複数の列にまたがる重複を見つけるにはどうすればよいですか?

    3. Oracleでビューを作成する方法

    4. MySQLでランダムな行を選択する