【问题标题】:Retrieve rows from SQL database after certain time在一定时间后从 SQL 数据库中检索行
【发布时间】:2015-05-23 07:52:51
【问题描述】:

我的数据库中有一个包含事件的表。事件有开始时间和结束时间。但是当它们被插入数据库时​​,用户输入的时间将转换为 UTC 时间。所以对我来说,我的时间偏移量是 UTC 时间的 -4 小时,如果我将开始时间输入为晚上 7 点(19:00:00),当添加到数据库时将转换为 23:00:00(UTC)。

问题

我希望用户能够在晚上 7 点及之后选择所有事件直到一天结束,但如果我进行查询:WHERE time > 23:00:00 它只会检索开始时间在晚上 7:00 到晚上 7 点 59 分。晚上 8:00 时,数据库中的 UTC 时间为 00:00:00,小于 23:00:00

保存开始时间的字段类型为time

我使用 javascript 获取时间偏移和输入,使用 php 获取 mySQL。关于如何使用这些语言或 SQL 解决这个问题的任何想法?

【问题讨论】:

  • 您最好将时间作为本地时间存储在服务器上,然后在需要时使用CONVERT_TZ() 将它们转换为UTC。

标签: javascript php mysql sql


【解决方案1】:

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_convert-tz

当你传入你的本地时间时,你可以将它包装在这个转换函数中,将它转换为 UTC 时间。这是一个mysql函数,所以所有的信息转换都可以在服务器上发生。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    • 2013-08-26
    • 1970-01-01
    • 2021-02-11
    • 2013-12-01
    • 1970-01-01
    相关资源
    最近更新 更多