基本上我想要做的事情我的.js文件是查询postgreSQL表中最后一小时创建的记录。我目前有一个名为time的变量,它保存最后一小时的日期(即时间=' 2015-09-03 14:55:15')。
现在我有,哪个有效:
var query = client.query("SELECT firstname, lastname, email, created_at WHERE created_at>'2015-09-04 14:55:15' FROM users");
但我真正想做的是使用时间变量在最后一小时查询记录 - 我将如何实现这一目标?我最初的想法是这样做,但它是不正确的:
var query = client.query("SELECT firstname, lastname, email, created_at WHERE created_at>"+time+" FROM users");
答案 0 :(得分:0)
我假设这是在Node.JS。
一些问题:
首先,您确定第一个示例有效吗?您将SQL子句设置为“SELECT WHERE FROM”。通常,订单是“SELECT FROM WHERE”。
其次,第二个示例中的字符串缺少第一个示例中的单引号。如果您查看传递给query
的字符串,它将如下所示:
SELECT firstname,lastname,email,created_at WHERE created_at> Thu Sep 03 2015 16:12:17 GMT-0400(Eastern Daylight Time)FROM users
没有单引号,这绝对不是有效的SQL。
第三,JavaScript生成的日期格式可能无法在Postgres中使用。我在这里的Postgres 9.2实例上尝试过它并得到以下错误:
错误:时区“gmt-0400”无法识别
因此,您可能需要添加一些代码以将日期正确格式化为Postgres日期文字。
格式化和字符串连接的更好替代方法是使用a parameterized query。