これは仕事で思いついたばかりで、この機能の背後にある理論的根拠は何だろうと思っていました
function Description
age(timestamp) Subtract from current_date (at midnight)
これは、なぜ午前 0 時から指定された日付を減算するのかと尋ねられました。now() から減算する代わりに? 理由はありますか?それともただの理由ですか?
これは仕事で思いついたばかりで、この機能の背後にある理論的根拠は何だろうと思っていました
function Description
age(timestamp) Subtract from current_date (at midnight)
これは、なぜ午前 0 時から指定された日付を減算するのかと尋ねられました。now() から減算する代わりに? 理由はありますか?それともただの理由ですか?
の両方の形式は、 ではなく、パラメーターとしてage()
受け取ります。を指定すると、深夜に対応する に変換されます。timestamp
date
date
timestamp
パラメーターが 1 つの形式では、今日の午前 0 時に対して年齢が計算されます。これは、明らかに最も有用な既定値です。
timestamp
、日数に加えて午前 0 時までの時差が得られます。date
、日数の間隔が得られます。これらは、安定した、すぐに役立つ、簡単に理解できる結果です。
年齢が に対して計算される場合now()
、これらのいずれにもなりません。これは、2 パラメーター形式を使用していつでも明示的に行うことができます。
したがって、これらの式は同じ結果になります。
SELECT age(now())
, age(now()::date, now())
, age(date_trunc('day', now()), now());