私のデータベースでは、すべてのcreated
タイムスタンプが同じ年を持つことが必要な日時操作を行う必要があります。PostgreSQLでのタイムスタンプの操作 - 時間/時間帯の問題
select created,cast (created -
to_timestamp(''||date_part('year', created), 'YYYY') +
timestamp '2010-01-01' as timestamp without time zone)
from table where created is not null limit 10;
...しかし、結果は部分的にしか満足です:私はこのクエリを試してみました
created | timestamp
---------------------+---------------------
2010-08-29 12:44:05 | 2010-08-29 11:44:05
2007-06-21 13:49:22 | 2010-06-21 12:49:22
2007-06-21 15:02:33 | 2010-06-21 14:02:33
2007-06-21 15:05:26 | 2010-06-21 14:05:26
1999-09-30 13:00:00 | 2010-09-30 12:00:00
1997-06-07 13:00:00 | 2010-06-07 12:00:00
2010-06-15 20:51:01 | 2010-06-15 19:51:01
2006-08-26 15:33:02 | 2010-08-26 14:33:02
2009-12-15 11:07:06 | 2010-12-15 11:07:06
1997-06-28 13:00:00 | 2010-06-28 12:00:00
(10 rows)
あなたが見ることができるように、すべてのタイムスタンプは-1元created
値と比較する時間。さらに奇妙なのは、最後の1つ前のもの(2010-12-15 11:07:06
)ではないということです。
created
カラムは、timestamp without time zone
タイプです。
何が間違っていたのでしょうか?