我正在使用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