我有数千张在坦桑尼亚拍摄的照片,我想将每张照片的日期和时间存储在MySQL数据库中。但是,该服务器位于美国,并且在春季夏令时期间(美国),当我尝试存储坦桑尼亚日期时间(在“无效”小时内)时,我遇到了问题。坦桑尼亚不执行夏令时,因此该时间实际上是有效时间。
另外一个复杂的问题是,来自许多不同时区的协作者将需要访问存储在数据库中的日期时间值。我希望他们总是以坦桑尼亚的时间出现,而不是出现在各个合作者所在的当地时间。
我不愿意设置会话时间,因为我知道当某人有时忘记设置会话时间并弄错所有时间会出现问题。而且我无权更改有关服务器的任何内容。
我读过: 夏令时和时区最佳实践以及 MySQL datetime字段和夏令时-我如何引用“额外”小时?和 将日期时间存储为PHP / MySQL中的UTC
但是他们似乎都没有解决我的特殊问题。我不是SQL专家;设置DATETIME时,有没有办法指定时区?我还没看过 否则,对于如何解决此问题的任何建议将不胜感激。
编辑:这是我遇到的问题的一个示例。我发送命令:
INSERT INTO Images (CaptureEvent, SequenceNum, PathFilename, TimestampJPG)
VALUES (122,1,"S2/B04/B04_R1/IMAG0148.JPG","2011-03-13 02:49:10")
我得到了错误:
Error 1292: Incorrect datetime value: '2011-03-13 02:49:10' for column 'TimestampJPG'
该日期和时间存在于坦桑尼亚,但数据库所在的美国不存在。