【发布时间】:2019-07-03 19:30:27
【问题描述】:
我正在尝试从 node.js 查询 MSSQL,并且查询涉及日期。
我这样设置查询日期:
var datoen = new Date();
datoen.setHours(2,0,0,0);
首先 - 在我的服务器上,这会注销为: 2019-07-03T00:00:00.000Z
为什么不注销为:2019-07-03T02:00:00.000Z?
无论如何 - 这不是真正的问题。这是我想要的第一个日期格式,它与数据库中的格式相同。
但是当我运行这个查询时(使用来自 npm 的 mssql):
request.query('select * from tblPriceRooms where
BarDate = ' + datoen, function (err, recordset) {
if (err) console.log(err)
res.send(recordset)
...服务器提供此错误-->
info:
{ number: 102,
state: 1,
class: 15,
message: 'Incorrect syntax near \'Jul\'.',
serverName: 'SERVERNAME\\SQLEXPRESS',
procName: '',
lineNumber: 1,
name: 'ERROR',
event: 'errorMessage' } },
name: 'RequestError',
precedingErrors: [] }
我知道连接工作正常。只要我不尝试根据日期进行查询 - 我会得到世界上所有的结果。
我是个新手,有时约会会让我头疼。任何指针将不胜感激!
【问题讨论】:
-
不要注入你的价值,参数化你的查询;那么您的值将作为日期/时间数据类型传递,并将被正确解析。
-
因为您设置了 local 小时并且时间戳是 UTC,所以大概您的系统设置为 +0200。试试
datoen.setUTCHours(2,0,0,0)。 ;-) -
这是“简单”@Larnu 吗?我打算弄清楚如何进行参数化 - 一旦我完成了基本查询:-) 我想我将不得不直接跳进去。非常感谢!
标签: javascript node.js sql-server