【问题标题】:How to write nodeJS query to fetch last 24 hours records of postgreSQL database using datetime INTERVAL如何使用 datetime INTERVAL 编写 nodeJS 查询以获取 postgreSQL 数据库的最近 24 小时记录
【发布时间】:2019-03-27 13:13:15
【问题描述】:

我正在使用我的.js 文件中的CURRENT_TIMESTAMP - INTERVAL '24 hours' 从 PostgreSQL 数据库中获取最近 24 小时的记录。但是由于查询中的单引号,我无法正确编写它。

我正在从 PostgreSQL 数据库中获取记录,并使用 Angular 6 以条形图的形式显示它们。

这是我试图从.js 文件运行以获取最近 24 小时记录的查询:

query = {

    name: 'fetch-chart-data24',

    text: ' SELECT availablecar, recentTime, adrs FROM stations_logs WHERE adrs = $1 AND recentTiontime > CURRENT_TIMESTAMP - INTERVAL '24 hours' ORDER BY recentTime desc',

    values: [req.body.adrs,req.body.param]
}

查询的最终结果应该是数据库最近的 24 小时记录。 目前我收到错误

意外的数字

【问题讨论】:

    标签: node.js postgresql postgresql-11


    【解决方案1】:

    您可以像这样在escape 单引号中加上反斜杠 (\):

    {
      ...
      text: ' SELECT availablecar, recentTime, adrs FROM stations_logs WHERE adrs = $1 AND recentTiontime > CURRENT_TIMESTAMP - INTERVAL \'24 hours\' ORDER BY recentTime desc',
      ...
    }
    

    进一步阅读:

    https://www.digitalocean.com/community/tutorials/how-to-work-with-strings-in-javascript#conclusion

    【讨论】:

      【解决方案2】:
      query = {
          name: 'fetch-chart-data24',
          text: `SELECT availablecar, recentTime, adrs FROM stations_logs WHERE adrs = $1 AND recentTiontime > CURRENT_TIMESTAMP - INTERVAL '24 hours' ORDER BY recentTime desc`,
          values: [req.body.adrs,req.body.param]
      }
      

      您可以使用template literals。它用于嵌入表达式,但也可以满足您的用例。

      【讨论】:

        猜你喜欢
        • 2021-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-26
        • 1970-01-01
        • 2020-10-07
        • 1970-01-01
        相关资源
        最近更新 更多