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