【问题标题】:SQL statement querying result which is within a time range时间范围内的SQL语句查询结果
【发布时间】:2012-11-27 03:49:30
【问题描述】:

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

这是我设置时间戳的方式:

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 前一天的时间戳的结果。

有人知道为什么吗?

提前致谢。

【问题讨论】:

    标签: javascript sql node.js postgresql


    【解决方案1】:

    我的猜测是您收到了正确的结果,但忘记将返回的结果集的时间戳列转换为 GMT+8:“Sat Dec 01 2012 00:00:00 GMT+0800” = Fri Nov 30 2012 16:00:00 UTC “。另一种选择 - 以 UTC 传递日期。实际上这取决于您想要获得什么:如果您需要在 12 月 1 日 GMT+8 加入的所有用户,则需要转换结果集,如果您需要在 12 月 1 日 UTC 加入的用户,传递 UTC 日期:"Sat Dec 01 2012 00:00:00 UTC"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-21
      • 2011-02-28
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2021-11-15
      相关资源
      最近更新 更多