SQL语句查询结果在一个时间范围内

时间:2012-12-09 15:49:47

标签: javascript sql node.js postgresql

我想做一个sql语句,使用javascript按时间戳查询。

以下是我设置时间戳的方法:

var startTime = new Date(year, month, day, 0, 0);
var endTime = new Date(year, month, day, 23, 59);

我的sql语句是:

'SELECT * FROM proximate.user WHERE join_timestamp >= $1 ' +
'AND join_timestamp<=$2 ORDER BY user_id ASC';

$ 1是startTime,$ 2是endTime。假设startTime为Sat Dec 01 2012 00:00:00 GMT+0800 (SGT)且endTime为Sat Dec 01 2012 23:59:00 GMT+0800 (SGT),则执行语句将返回包含startTime前一天的时间戳的结果。

任何人都知道为什么?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我的猜测是您收到了正确的结果,但忘了将返回结果集的timestamp列转换为GMT + 8:“Sat Dec 01 2012 00:00:00 GMT + 0800”= 2012年11月30日星期五16:00:00 UTC “。另一种选择 - 以UTC格式传递日期。实际上这取决于你想要得到的东西:如果你需要所有在12月1日GMT + 8加入的用户你需要转换结果集,如果你需要12月1日加入的用户,传递UTC日期:“Sat Dec 01 2012 00:00:00 UTC”