如何将 Knex 日期设置为未来 30 天

Iss*_*ihi 3 database-migration node.js knex.js

我认为这个问题确实很简单,但我找不到答案。

在 Knex 中,我可以在数据库中设置时间戳,knex.fn.now() 但是现在我需要设置 30 天后的日期,now这和knex.fn.now() + 30工作一样简单还是还有其他技巧?

任何帮助都值得赞赏,即使是指向不同来源的链接。先感谢您

fel*_*osh 6

knex.fn.now()CURRENT_TIMESTAMP将在数据库上执行函数,该函数返回 1970 年 1 月 1 日的时间戳(以毫秒为单位)

您可以使用数据库内置方法来计算未来日期。在MySQL中,该方法调用date_add.

SELECT date_add(now(), INTERVAL 30 day);
Run Code Online (Sandbox Code Playgroud)

对于 Knex,您将需要使用该raw方法。

knex.select(knex.raw('date_add(?, INTERVAL ? day)', [knex.fn.now(), 30]));
Run Code Online (Sandbox Code Playgroud)

编辑:

在 postgress 中,此查询将如下所示:

knex.select(knex.raw('date_add(?, INTERVAL ? day)', [knex.fn.now(), 30]));
Run Code Online (Sandbox Code Playgroud)

所以,在 Knex 中它将是:

knex.select(knex.raw(`? + INTERVAL '? day'`, [knex.fn.now(), 30]));
Run Code Online (Sandbox Code Playgroud)