我的数据库中有一个包含事件的表。事件有开始时间和结束时间。但是当它们插入数据库时,用户输入的时间将转换为UTC时间。所以对我来说,我的时间偏移是距离UTC时间-4小时,如果我将开始时间输入为晚上7点(19:00:00),则在添加到数据库时将其转换为23:00:00(UTC)。
问题
我希望用户能够在晚上7点之前和之后选择所有事件,直到当天结束,但是如果我执行查询:WHERE time > 23:00:00
它将仅检索开始时间介于7之间的事件:下午00点和下午7点59分。在晚上8点,数据库中的UTC时间为00:00:00
,小于23:00:00
。
存储开始时间的字段类型为time
我使用javascript来获取时间偏移和输入,以及php for mySQL。关于如何使用这些语言或SQL解决这个问题的任何想法?
答案 0 :(得分:1)
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_convert-tz
当您传入当地时间时,可以将其包装在此转换函数中以将其转换为UTC时间。这是一个mysql函数,因此所有信息转换都可以在服务器上进行。