30

PostgreSQLで秒単位で2つの日付の日付差を見つけるにはどうすればよいですか?

SQL-Server のように秒単位で日付の差を与える関数はありません。

DATE_DIFF(second, '2011-12-30 09:55:56', '2011-12-30 08:54:55')

PostgreSQLにもこれを入れるのを手伝ってください

4

1 に答える 1

51

まず、日付はタイプの値である必要があります(したがって、文字列リテラルとして指定するだけの場合はtimestamp追加します)。::timestamp

2つのタイムスタンプを引くと、結果はinterval時間の長さ(時間、分、秒など)を表すタイプになります。これを使用extract(epoch from interval_value)して、間隔を絶対秒数に変換できます。

だから、それをすべてまとめると:

select extract(epoch from ('2011-12-30 09:55:56'::timestamp - '2011-12-30 08:54:55'::timestamp));

文字列リテラル::timestampをタイムスタンプに変換するためにのみ必要であることに注意してください。たとえば、タイムスタンプ列の値を使用している場合は必要ありません。

于 2012-11-29T13:36:01.413 に答える