使用Node.js执行postgresql查询,但使用变量来查询参数

时间:2015-09-16 17:01:04

标签: node.js postgresql

我正在使用节点创建一个脚本,该节点将从PostgreSQL数据库中获取在过去半小时内创建的记录。我有:

var query = client.query("SELECT * FROM users WHERE created_at>'2015-9-16 20:04:17'");

现在,我的问题是我希望created_at>'2015-9-16 20:04:17'使用我称为time的变量实际搜索在过去半小时内创建的记录。可变时间设置为过去半小时:

var currentdate = new Date();
var diff=30;
var time = new Date(currentdate.getTime() - diff*60000);
var day=time.getDate();
var month=time.getMonth()+1;
var year=time.getFullYear();
var hours=time.getHours();
var minutes=time.getMinutes();
var seconds=time.getSeconds();

var time=year + '-' + month + '-' + day + ' ' + hours+':'+minutes+':'+seconds;

如何更改查询以便搜索date>time?最初我以为我可以写:

var query = client.query("SELECT * FROM users WHERE created_at>'$time'"); 

2 个答案:

答案 0 :(得分:2)

您可以避免在客户端进行所有计算,而是在SQL中计算所需的开始时间:

var query = client.query("SELECT * FROM users "
                         + "WHERE created_at > (NOW() - INTERVAL 30 MINUTES)");

(为了便于阅读,我将字符串分开;你不需要这样做)

答案 1 :(得分:-2)

我建议你这样做:

var time=year + '-' + month + '-' + day + ' ' + hours+':'+minutes+':'+seconds;
client.query("SELECT * FROM users WHERE created_at >'" + time + "'");