私はデータベースにいくつかの日付を保存するためにpostgresqlを使用しています。
私のアプリケーションでは、タイムゾーンを完全に認識しており、クライアント、サーバー、データベースの間で基本的なテストを行っていたことが基本です。PostgreSQL 9.1タイムゾーン
私はGWTで行ったブラウザのアプリケーションからの日数を送るとPostgreSQLの日付を読みました。
私のテスト:
クライアントは、GMTタイムゾーンに常にある、と私は常に、それぞれの場合に同じ日付を送っています。私は、各テストのためのタイムゾーンを変更していposgresで
13/04/2012 00:00:00 GMT + 00
。テストの間に、テーブルからすべての日付を削除します。
posgresのタイムゾーンを変更するには、{PostgreSQL HOME} \ 9.1 \ data \ postgresql.confでタイムゾーンを設定します。
実験: クライアント:13/04/2012 00:00:00 GMT + 00
1試験 - posgres EST - 2012年12月4日19:00:00〜05 postgresql documentation ESTによれ= GMT - 5
2試験 - posgres GMT + 5 - 2012年12月4日19:00:00〜05
3試験 - posgres GMT - 5 - 13/04/2012 05:00:00 + 05
今私の質問が上がる:ドキュメントによると、EST = GMT - 5だから、なぜ私はそれを逆に読むのだろうか? ここに何か不足していますか?私のテストの
EDIT 技術的側面:2012年4月13日00:00:00 GMT + 00:クライアントで
は、私はこれを送信します。私はDBに書き込むためにJDBCを使用しているサーバー上
:
コンバートjava.utils.date たjava.sql.Timestampに
java.sql.Timestamp sqlTimeStamp = new java.sql.Timestamp(date.getTime());
(日付はクライアントから来java.utils.Dateです)
は、準備された文
PreparedStatement ps = con.prepareStatement("INSERT INTO teste.dates (dates_tz, dates_ntz) VALUES (?, ?);"
ps.setTimestamp(1、sqlTimeStamp)を設定します。 ...レコードの
を全体的に、それは私の目的に適していますので、これは、私が理解したいだけで何か..です
あなたのテストで使用された実際の声明を示してください。 –
クライアントで私はこれを送る:2012年4月13日00:00:00。 JDBCを使用してデータベースに書き込むサーバーでは、次のようになります。db: java.sql.Timestamp sqlTimeStamp =新しいjava.sql.Timestamp(date.getTime()); (日付はクライアントからのjava.utils.Dateです) INSERT INTO dbFoo.dates_table(date_tz)VALUES(?); ps.setTimestamp(1、sqlTimeStamp); –
コメントを入力する代わりに、質問を編集してください。それははるかに読みやすいです。 –