Использование дат при запросе MSSQL из node.js - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь запросить MSSQL из node.js, и запрос включает даты.

Я установил дату запроса следующим образом:

var datoen = new Date();
datoen.setHours(2,0,0,0);

Прежде всего - на моем сервере это выходит из системы как: 2019-07-03T00: 00: 00.000Z

Почему он не выходит из системы как: 2019-07-03T02: 00: 00.000Z?

Во всяком случае - это не совсем вопрос. Это первый формат даты, который я хочу, и он идентичен формату в базе данных.

Но когда я запускаю этот запрос (используя mssql из npm):

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: [] }

Я знаю, что связь работает нормально. Пока я не пытаюсь делать запросы на основе дат - я получаю все результаты в мире.

Я новичок, и свидания иногда приходят мне на ум. Любые указатели будут высоко оценены!

1 Ответ

1 голос
/ 03 июля 2019

Я бы предложил использовать параметры для запроса, вы получаете много преимуществ от этого подхода. Это должно работать для вас:

// Put whatever date you wish here..
const date = new Date();
date.setUTCHours(2, 0, 0, 0);
request.query('select * from tblPriceRooms where BarDate > @date', (err, result) => {
    if (err) {
        console.error("Error occurred: ", err);
    } else {
        console.info("Rows: ", result);
    }
}).input('date', sql.DateTime, date); // Add the date parameter here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...