Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Sequelize如何格式化查询中的Sequelize.literal(';当前时间戳';)?_Mysql_Node.js_Sequelize.js - Fatal编程技术网

Mysql Sequelize如何格式化查询中的Sequelize.literal(';当前时间戳';)?

Mysql Sequelize如何格式化查询中的Sequelize.literal(';当前时间戳';)?,mysql,node.js,sequelize.js,Mysql,Node.js,Sequelize.js,我一直在尝试将日期(yyyy-mm-dd)与sequelize.literal('CURRENT\u TIMESTAMP')进行比较,如下所示: dataagendado: { [Op.gte]: sequelize.literal('CURRENT_TIMESTAMP') } 当dataagendado的值等于今天的日期时,这适用于大于的情况,但不。我认为我需要格式化当前时间戳数据。我一直在试图找到答案,但我得到的只是创建列时的格式设置,这似乎不适用于SELECT查询。我还尝试了se

我一直在尝试将日期(
yyyy-mm-dd
)与
sequelize.literal('CURRENT\u TIMESTAMP')
进行比较,如下所示:

dataagendado: {
    [Op.gte]: sequelize.literal('CURRENT_TIMESTAMP')
}
dataagendado
的值等于今天的日期时,这适用于大于的情况,但。我认为我需要格式化
当前时间戳
数据。我一直在试图找到答案,但我得到的只是创建列时的格式设置,这似乎不适用于SELECT查询。我还尝试了
sequelize.fn('NOW')
并格式化它,但没有成功


我走对了吗?非常感谢您的帮助。

免责声明:我假设您正在使用Postgres作为基础数据库。如果不是这样,请发布您的数据库引擎

您正在使用
sequelize.literal('CURRENT_TIMESTAMP')
,它在Postgres中解析为
NOW()
NOW()
函数返回当前时间的时间戳。如果您将没有时间戳的日期与时间戳不起作用的日期进行比较

您可以使用以下内容:

dataagendado: {
    [Op.gte]: sequelize.literal('now()::Date')
}
    dataagendado: {
        [Op.lte]: sequelize.literal('CURDATE()')
    }
在SQL中,会发生以下情况:

SELECT NOW()
=>
2021-03-31T07:39:24.518Z


SELECT NOW()::Date
=>
2021-03-31T00:00:00.000Z

多亏了staaar的回答,我获得了足够的洞察力,意识到我应该在数据库文档中寻找函数,而不是在Sequelize的文档或线程中。我使用MySql作为数据库,因此我应该使用的当前日期函数如下所示:

dataagendado: {
    [Op.gte]: sequelize.literal('now()::Date')
}
    dataagendado: {
        [Op.lte]: sequelize.literal('CURDATE()')
    }
,可能在数据库的文档中查找类似的内容。祝你好运


再次感谢用户staaar

您是否使用Postgres作为基础数据库?不,对不起,我昨天无法确定地验证这一点。我正在使用MySql,但你的回答提供了足够的洞察力,让我自己来理解其余部分,非常感谢!我使用MySql作为数据库,多亏了你的评论,我意识到我误解了sequelize.literal的作用,我本应该通过sequelize来寻找数据库函数,但我一直在寻找解决方案。使用
[Op.lte]:sequelize.literal('CURDATE()')
对我很有效,非常感谢!