2011-10-26 13 views
0

日付を含むcakephpでデータをPostgresに挿入しようとしています。Postgresの "タイムスタンプ"に日付(Y-m-d H:i:s)を挿入できません

私のデータベースの列はtimestamp without timezoneであり、日付時刻文字列"Y-m-d H:i:s"(これもintで試してみました)があります。

この値をキャストする必要がありますか?

+2

私たちにあなたの声明とあなたのエラーメッセージを教えてください。 –

+0

具体的な値と、おそらく使用されているINSERT文の例を挙げることができますか? –

答えて

0

使用

'Y-m-d H:i:s'::timestamp 

単一引用符例えば

を忘れてはいけない

select '2011-01-01'::timestamp 
+0

私はグーグルで何時間も過ごしましたが、ここで私の質問を投稿した後、私の声明がエラーを発生させる理由を見つけました。 – Daniel

+0

フィールドには配列が必要です。今私はそれを変更し、それは動作するようです。 – Daniel

1

あなたリテラルテキストがあいまいでない限り、挿入された値をキャストする必要はありません容認されたフォーマットで。

タイムスタンプ( '2011年10月21日午前12時10分23秒')のため日付( '2011-10-21')を間違えないでください。

INSERT INTO tbl (timestamp_col) 
VALUES ('2011-01-01 0:0:0'); 

しかし日付あなたは、その結果、キャストする必要があり

:このケースでは '2011年1月1日0:0:0'
これはタイムスタンプための完全に合法です
INSERT INTO tbl (timestamp_col) 
VALUES ('2011-01-01'::timestamp); 

ISO 8601形式の日付は「yyyy-mm-dd」、タイムマップの「yyyy-mm-dd hh:mm:ss」はunambiguous for any localeです。その他の形式は、ロケールによって異なる場合があります。

関連する問題