我正在使用节点创建一个脚本,该节点将从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'");
答案 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 + "'");