db2 转换为日期时间不是有效的sql查询

yks3o0rb  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(252)

我有这个:

let startDateRange = loadYear + '-' + loadMonth + '-01'
let endDateRange = loadYear + '-' + loadMonth + '-31'
var getschedule = "select * from SCHEDULE where DATE BETWEEN '" + CONVERT(DATETIME, startDateRange) + "' AND '" + CONVERT(DATETIME, endDateRange) + "'"

而在startDateRangeendDateRange中,它的格式是这样的字符串:

'2021-Dec-01'

它给出错误:

ReferenceError: CONVERT is not defined

我该怎么解决这个问题?

8ehkhllq

8ehkhllq1#

我觉得你还缺少一些基础知识。

var getschedule = "select * from SCHEDULE where DATE BETWEEN '" + CONVERT(DATETIME, startDateRange) + "' AND '" + CONVERT(DATETIME, endDateRange) + "'"`

Javascript认为CONVERT是您在Javascript代码中定义的函数,而不是SQL命令。虽然您没有提供大量的上下文,但您可能正在尝试构建一个完整的SQL查询。如果您想将在Javascript中计算的值给予到SQL数据库的查询中,您需要构建一个完整的字符串。
使用template literals可能更容易(或更容易阅读):

const getschedule = `select * from SCHEDULE where DATE BETWEEN 'CONVERT(DATETIME, ${startDateRange})' AND 'CONVERT(DATETIME, ${endDateRange})'`

或者,您也可以像第一次尝试那样连接字符串:

const getschedule = "select * from SCHEDULE where DATE BETWEEN 'CONVERT(DATETIME, " + startDateRange + ")' AND 'CONVERT(DATETIME, " + endDateRange + ")'";

充分披露:我不知道这个SQL查询是否对你有效,很明显你对Javascript函数和如何构造字符串的想法是错误的。

相关问题