使用js执行postgresql查询,但使用变量查找日期<certain value =“”

时间:2015-09-03 19:56:06

标签: javascript postgresql

=“”

基本上我想要做的事情我的.js文件是查询postgreSQL表中最后一小时创建的记录。我目前有一个名为time的变量,它保存最后一小时的日期(即时间=&#39; 2015-09-03 14:55:15&#39;)。

现在我有,哪个有效:

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");

1 个答案:

答案 0 :(得分:0)

我假设这是在Node.JS。

一些问题:

首先,您确定第一个示例有效吗?您将SQL子句设置为“SELECT WHERE FROM”。通常,订单是“SELECT FROM WHERE”。

其次,第二个示例中的字符串缺少第一个示例中的单引号。如果您查看传递给query的字符串,它将如下所示:

  

SELECT firstname,lastname,email,created_at WHERE created_at&gt; 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