node-postgres 中带有字符串文字的参数化查询

ale*_*sos 2 node-postgres

我正在尝试编写一个 node-postgres 查询,该查询采用一个整数作为参数在间隔中使用:

  const query = {
    text:
      `SELECT
        foo 
        FROM bar 
        WHERE 
          DATE(created_at) >= DATE(NOW()) - INTERVAL '$1 DAYS';`,
    values: [daysAgo]
  }
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它给出了这个错误消息,表明它没有看到,$1因为它用单引号括起来:

绑定消息提供 1 个参数,但准备好的语句 "" 需要 0

有没有支持的方法来做到这一点?如果没有,最好的解决方法是什么?

rot*_*ial 5

我找到了这个参考,它表明您可以使用'1 DAY' * X.

我能够这样工作:

   (async () => {
       const { rows } = await pgpool.query(`
          SELECT id, name FROM users 
           WHERE DATE(created) <= DATE(NOW()) - INTERVAL '1 DAY' * $1;`,
           [req.params.daysAgo]);
Run Code Online (Sandbox Code Playgroud)