我想做一个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前一天的时间戳的结果。
任何人都知道为什么?
提前致谢。
答案 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”