【问题标题】:convert to datetime not working sql query转换为日期时间不起作用的 sql 查询
【发布时间】:2022-01-16 02:43:28
【问题描述】:

我有这个:

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

我该如何解决这个问题?

【问题讨论】:

标签: javascript mysql sql node.js db2


【解决方案1】:

我认为你在这里遗漏了一些基础知识。

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 函数和如何构造字符串的想法是错误的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 2018-02-05
    相关资源
    最近更新 更多