Node.js + Express + MySQLを使用してWebアプリケーションを構築しています。各テーブルには、DatetimeであるCreatedOn列があります。レコードがWebアプリケーションから作成されるたびに、バックエンドでvar createdOn = new Date();を実行します。このフィールドに値を設定します。クエリ後にMySql datetimeのフィールド値が正しく返されない
ユーザーがレコードリストページを開くと、その日(今日)に作成されたレコードをデフォルトで表示します。しかし、私はまだ昨日作成されたレコードを見ることができます(昨日とその前ではない)。私のデータベースでは、phpMyAdminでチェックするとdatetime値は2016-07-21 18:01:22として保存されます。
私のSQLクエリは次のようになります。
たMyTableからコルンCOL1を選択し、COL2 ... DATE(CreatedOn)= DATE(NOW())順序TIMEによって(CreatedOn)DESC
このクエリから行をデバッグすると、CreatedOnとNOW()の値が変更されたようです。
この質問を書く瞬間、2016年7月22日ですが、DATE(NOW())は2016-07-20T18:30:00.000Zと表示し、DATE(CreatedOn)は2016-07- 20T18:30:00.000Zも同様です。
DBで調整する必要はありますか?またはこれらの値を間違って読んでいますか? 助けてくれてありがとう。
date()関数は、日付を返すようにする必要はありません。 – Jens
js datetime、server datetime、mysql datetime。彼らは異なるタイムゾーンにいるかもしれません。それらが同じであることを確認してください – SIDU
サーバーは私のlocalhostです、データベースはGoDaddyによってホストされており、アプリケーションで作成されたときに正しいDateTimeを格納しているようです。しかし、それをデータベースから読み込むと、それを別の値に変換します。 – codeinprogress