関数の型解決のおかげで、 fromとfrom の暗黙のキャストがあるため、 にもdate
値を 渡すことができます。あいまいですが、「日付/時刻型」の中で「優先」されます。詳細な説明:generate_series()
date
timestamp
date
timestamptz
timestamptz
裸の場合、キャストではdate
現地時間が想定されます。'2014-01-10 00:00' は、東京ではニューヨークとは異なる時点を表すため、入力として00:00
使用する場合は、現在のタイム ゾーン設定が結果に直接影響することに注意してください。date
Postgres は受け入れ可能な型をどのように決定しますか?
Postgres は基本的に3 種類のキャストを区別します。
Explicit casts
..CAST
または::
構文を使用する場合。
Assignment cast
.. 値がターゲット列に割り当てられるときの暗黙のキャスト。
Implicit cast
.. 他のすべての式での暗黙のキャスト。
関数が暗黙のうちに入力値を受け入れる (そして変換する) ようにするには、入力型から予期される型への暗黙的なキャストがシステムに登録されている必要があります。
どのキャストが に定義されているかを確認するには timestamptz
、カタログ テーブルにクエリを実行できますpg_cast
。
SELECT castsource::regtype, casttarget::regtype, castcontext
FROM pg_cast
WHERE casttarget = 'timestamptz'::regtype;
castsource | casttarget | castcontext
-----------------------------+--------------------------+-------------
abstime | timestamp with time zone | i
date | timestamp with time zone | i
timestamp without time zone | timestamp with time zone | i
timestamp with time zone | timestamp with time zone | i
これらのキャストはすべて暗黙的です。のドキュメントごとcastcontext
:
キャストを呼び出すことができるコンテキストを示します。e
明示的なキャスト (CAST
または::
構文を使用) としてのみ意味します。a
明示的にだけでなく、ターゲット列への代入で暗黙的にも意味します。i
は、他の場合と同様に、式で暗黙的に意味します。
大胆強調鉱山。