我有数千张在坦桑尼亚拍摄的照片,我想将每张照片的拍摄日期和时间存储在 MySQL 数据库中。但是,服务器位于美国,当我尝试存储在春季夏令时(在美国)的“无效”小时内的坦桑尼亚日期时间时遇到了问题。坦桑尼亚不做夏令时,所以时间是一个实际有效的时间。
其他复杂情况是,来自许多不同时区的合作者需要访问存储在数据库中的日期时间值。我希望它们始终以坦桑尼亚时间出现,而不是各种合作者所在的当地时间。
我不愿意设置会话时间,因为我知道当有人有时忘记设置会话时间并把时间弄错时会出现问题。而且我无权更改有关服务器的任何内容。
我已阅读: 夏令时和时区最佳实践以及 MySQL 日期时间字段和夏令时——我如何引用“额外”小时?并将 日期时间存储为 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'
此日期和时间存在于坦桑尼亚,但不存在于数据库所在的美国。