• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLite 3.7.1 のタイムゾーンについて)

SQLite 3.7.1 のタイムゾーンについて

このQ&Aのポイント
  • Windows XPでのSQLiteのタイムゾーン取り扱いに関する質問です。特定のSQL実行時にタイムゾーンのずれが生じる問題に直面しており、解決策を教えていただきたいです。
  • Windows XPのタイムゾーンは正しく設定されており、PHPのタイムゾーン設定も適切に行われています。しかし、特定のSQL実行時にSQLiteに記録される時間がタイムゾーンの分だけ遅れている現象が起きています。
  • 「UPDATE xxx SET AA='AA', UDate='2010-11-21 19:15:10' WHERE ID='321'」というSQLを実行すると、SQLiteに記録されるUDateがタイムゾーンに合わせて遅れてしまいます。現在はCURRENT_TIMESTAMPを使用して問題を回避していますが、正しい方法でタイムゾーンを処理する方法があれば教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.1

時刻関係のdefaultは、GMTを返すようです。 フォーマット関数で localtime を指定すれば、サーバーOS設定の現地時間になります。 select strftime("%Y-%m-%d %H:%M:%S",CURRENT_TIMESTAMP, 'localtime') http://opengroup.org/onlinepubs/007908799/xsh/strftime.html

gtx456gtx
質問者

お礼

>時刻関係のdefaultは、GMTを返すようです。 御回答ありがとうございます。 御回答頂き、調べ直してみると御指摘のように「localtime」という記述が抜けているようです。 プログラムを訂正して確認してみます m(_ _)m

gtx456gtx
質問者

補足

ご回答頂いたように「UPDATE xxx SET AA='AA', UDate=CURRENT_TIMESTAMP WHERE ID= '321'」を下記のように書き換えて無事に時計と同じ時間でdbに記録されるようになりました。 >UPDATE xxx SET AA='AA', UDate=datetime( 'now', 'localtime' ) WHERE ID= '321' ご指摘頂いたように「localtime」の不足でした。 ありがとうございます。

その他の回答 (1)

  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.2

No1回答したものです。 参考サイトurlを間違えました済みません、SQLite構文解説はこっちです。 http://www.sqlite.org/lang_datefunc.html

関連するQ&A