SQL 使用日期查询 returns 节点 mssql 中的日期时间
SQL Query with Date returns Datetime in Node mssql
我正在使用节点 mssql 的 v6.3.1。
我的查询包括日期类型的多个列。
在节点 mssql 中,所有日期列的输出格式为:2020-10-20T00:00:00.000Z
当我在 Azure Data Studio 中进行相同查询时,我得到:2020-10-20
我的问题是当我使用 YYYY-MM-DD 格式时遇到错误,因此需要更新数据库。
有没有一种方法可以更新数据库而不必检查每个字段是否有日期,然后向其中添加“0T00:00:00.000Z”?
当前代码是这样的:
// 在服务器启动时运行
const sql = require('mssql')
const poolPromise = sql.connect({
server: process.env.SQL_SERVER,
user: process.env.SQL_USER,
password: process.env.SQL_PASSWORD,
database: process.env.SQL_DATABASE
})
// 在查询时运行
async function updateSqlRecord(fields) {
// Adding fields below for demonstration
let fields = {id: 1, name: 'test', date: '2020-10-12' }
let database = process.env.SQL_DATABASE
let table = 'Test'
let querystring = `UPDATE [${database}].[dbo].[${table}] SET `
Object.entries(fields).forEach(field => {
const [key, value] = field;
querystring += `${key} = '${value}', `
});
querystring = querystring.slice(0, -2)
querystring += ` WHERE projektNr = ${fields.projektNr}`
try {
let pool = await poolPromise
let result = await pool.request()
// .input('projektNr', sql.Int, value)
.query(querystring)
console.log(result)
return result.rowsAffected
} catch (err) {
console.log('SQL request Error',err)
}
}
如果可能,您可以尝试使用 moment.js
在将日期添加到数据库之前解析日期
var moment = require('moment');
...
var formatedDate = moment(myDate).format('YYYY/MM/DD HH:MM:SS').toISOString();
我正在使用节点 mssql 的 v6.3.1。 我的查询包括日期类型的多个列。 在节点 mssql 中,所有日期列的输出格式为:2020-10-20T00:00:00.000Z 当我在 Azure Data Studio 中进行相同查询时,我得到:2020-10-20
我的问题是当我使用 YYYY-MM-DD 格式时遇到错误,因此需要更新数据库。 有没有一种方法可以更新数据库而不必检查每个字段是否有日期,然后向其中添加“0T00:00:00.000Z”?
当前代码是这样的:
// 在服务器启动时运行
const sql = require('mssql')
const poolPromise = sql.connect({
server: process.env.SQL_SERVER,
user: process.env.SQL_USER,
password: process.env.SQL_PASSWORD,
database: process.env.SQL_DATABASE
})
// 在查询时运行
async function updateSqlRecord(fields) {
// Adding fields below for demonstration
let fields = {id: 1, name: 'test', date: '2020-10-12' }
let database = process.env.SQL_DATABASE
let table = 'Test'
let querystring = `UPDATE [${database}].[dbo].[${table}] SET `
Object.entries(fields).forEach(field => {
const [key, value] = field;
querystring += `${key} = '${value}', `
});
querystring = querystring.slice(0, -2)
querystring += ` WHERE projektNr = ${fields.projektNr}`
try {
let pool = await poolPromise
let result = await pool.request()
// .input('projektNr', sql.Int, value)
.query(querystring)
console.log(result)
return result.rowsAffected
} catch (err) {
console.log('SQL request Error',err)
}
}
如果可能,您可以尝试使用 moment.js
在将日期添加到数据库之前解析日期
var moment = require('moment');
...
var formatedDate = moment(myDate).format('YYYY/MM/DD HH:MM:SS').toISOString();