2009-04-06 4 views
1

私はタイムスタンプを持つタイムゾーンフィールドをPostgreSQLに持っています。私はこのフィールドを更新すると 、私はこのようなものを使用します。SQLは正常に動作しますが、PostgreSQLのタイムスタンプフィールドは、PHPで更新したときと同じ方法でフォーマットされていません

$date = date('Y-m-d H:i:s'); 

を、保存された日付はタイムゾーン日付と古典タイムスタンプには少し異なるようです。

Example: 

Default value set to "now()": 
date 2009-04-06 14:39:53.662522+02 

Update with a date set in php: 
$date = date('Y-m-d H:i:s'); 
date 2009-04-06 14:39:53+02 

更新時に削除される数値はおそらくミリ秒ですが、わかりません。 PHPで日付の形式を取得する方法があるかどうかを知りたいですか?

答えて

1

タイムスタンプの1秒の解像度が必要な場合は、それに応じてデータベースを設計する必要があります。デフォルトの解像度は1秒よりも優れています。例えば

使用、次の列定義:

last_access_time timestamp with time zone not null 
    default date_trunc('second',now()) 
    constraint last_access_time_full_second check (
     date_trunc('second',last_access_time)=last_access_time 
    ) 
+0

Fortunatelly列の定義は、(デフォルト値のための少なくとも一部)はるかに簡単かもしれない:タイムゾーンのデフォルトのCURRENT_TIMESTAMPとLAST_ACCESS_TIMEタイムスタンプ(0) –

関連する問題