2016-07-22 9 views
0

Node.js + Express + MySQLを使用してWebアプリケーションを構築しています。各テーブルには、DatetimeであるCreatedOn列があります。レコードがWebアプリケーションから作成されるたびに、バックエンドでvar createdOn = new Date();を実行します。このフィールドに値を設定します。クエリ後にMySql datetimeのフィールド値が正しく返されない

ユーザーがレコードリストページを開くと、その日(今日)に作成されたレコードをデフォルトで表示します。しかし、私はまだ昨日作成されたレコードを見ることができます(昨日とその前ではない)。私のデータベースでは、phpMyAdminでチェックするとdatetime値は2016-07-21 18:01:22として保存されます。

私のSQLクエリは次のようになります。

COL1を選択し、COL2 ... DATE(CreatedOn)= DATE(NOW())順序TIMEによって(CreatedOn)DESC

たMyTableからコルン

このクエリから行をデバッグすると、CreatedOnとNOW()の値が変更されたようです。

この質問を書く瞬間、2016年7月22日ですが、DATE(NOW())は2016-07-20T18:30:00.000Zと表示し、DATE(CreatedOn)は2016-07- 20T18:30:00.000Zも同様です。

DBで調整する必要はありますか?またはこれらの値を間違って読んでいますか? 助けてくれてありがとう。

+0

date()関数は、日付を返すようにする必要はありません。 – Jens

+0

js datetime、server datetime、mysql datetime。彼らは異なるタイムゾーンにいるかもしれません。それらが同じであることを確認してください – SIDU

+0

サーバーは私のlocalhostです、データベースはGoDaddyによってホストされており、アプリケーションで作成されたときに正しいDateTimeを格納しているようです。しかし、それをデータベースから読み込むと、それを別の値に変換します。 – codeinprogress

答えて

0

私が引き出さ時に何らかの問題が時々レコードは私に異なる結果を与えるが、私はDATE_FORMATを使用する場合、それは

Date_Format(date_field,"%Y-%m-%d"); 

は、それあなたの日付フィールドのすべてを行います私の問題を修正することになりました。 これは役に立ちます。

+0

私は日付形式を使って比較しますか? – codeinprogress

+0

はいいいえ結果と比較してください.. Date_Formatは一度だけでなく、多くのことを助けます。日付はこの形式の "2016-07-22"のように見える必要があります。 .. –

+0

私は昨日作成したレコードを表示します。 – codeinprogress

関連する問題