我正在使用Node.js + Express + MySQL構建Web應用程序。在每個表中都有一個CreatedOn列,它是Datetime。無論何時從Web應用程序創建記錄,在後端我都會創建var createdOn = new Date();填充這個字段。查詢後MySql datetime字段值返回不正確
當用戶打開記錄列表頁面時,我想默認顯示當天(今天)創建的記錄。但是,我仍然可以看到昨天創建的記錄(僅在昨天而不是在此之前)。在我的數據庫中,當我通過PhpMyAdmin查看時,日期時間值保存爲2016-07-21 18:01:22。
我的SQL查詢看起來是這樣的:
選擇COL1,COL2 ...從MyTable的科隆其中date(CreatedOn)= DATE(NOW())ORDER BY TIME(CreatedOn)DESC
當我從這個查詢調試行時,它似乎像CreatedOn和NOW()值已更改。
在寫這個問題的時候,它是2016年7月22日,但是DATE(NOW())顯示它2016-07-20T18:30:00.000Z並且它顯示DATE(CreatedOn)爲2016-07- 20T18:30:00.000Z。
我需要在數據庫中進行一些調整嗎?還是我讀這些值錯了? 感謝您的幫助。
你不需要date()函數,因爲現在返回一個日期。 – Jens
js datetime,服務器日期時間,mysql日期時間。他們可能在不同的時區。確保它們是相同的 – SIDU
服務器是我的本地主機,數據庫由GoDaddy託管,它似乎在應用程序中創建時存儲正確的DateTime。但是,當從數據庫中讀取它時,它會將其轉換爲另一個值。 – codeinprogress