如何向原始MySQL';表中每行的日期时间值
我有一个PHP应用程序,它将PHP日期时间存储到我的MySQL表中。我没有注意到php服务器使用了错误的时区设置,因此表中存储的所有日期都不正确。我的时区是GMT+8,但是PHP的“date.timezone”是GMT+0,所以我需要在表中所有现有的日期值中添加8小时 当前数据:如何向原始MySQL';表中每行的日期时间值,mysql,Mysql,我有一个PHP应用程序,它将PHP日期时间存储到我的MySQL表中。我没有注意到php服务器使用了错误的时区设置,因此表中存储的所有日期都不正确。我的时区是GMT+8,但是PHP的“date.timezone”是GMT+0,所以我需要在表中所有现有的日期值中添加8小时 当前数据: ID,session_start,session_close,total_sale 1,2012-01-01 01:35:33,2012-01-01 09:35:33,8211.9 2,2012-01-02 01:3
ID,session_start,session_close,total_sale
1,2012-01-01 01:35:33,2012-01-01 09:35:33,8211.9
2,2012-01-02 01:32:31,2012-01-02 09:46:54,4323.56
3,2012-01-03 01:21:38,2012-01-03 09:32:21,8732.33
ID、会话开始、会话结束、总销售额
1,2012-01-01 01:35:33,2012-01-01 09:35:33,8211.9
2,2012-01-02 01:32:31,2012-01-02 09:46:54,4323.56
3,2012-01-03 01:21:38,2012-01-03 09:32:21,8732.33
所需数据:
ID,session_start,session_close,total_sale
1,2012-01-01 09:35:33,2012-01-01 17:35:33,8211.9
2,2012-01-02 09:32:31,2012-01-02 17:46:54,4323.56
3,2012-01-03 09:21:38,2012-01-03 17:32:21,8732.33
ID、会话开始、会话结束、总销售额
1,2012-01-01 09:35:33,2012-01-01 17:35:33,8211.9
2,2012-01-02 09:32:31,2012-01-02 17:46:54,4323.56
3、2012-01-03 09:21:38,2012-01-03 17:32:21,8732.33
我需要修复mysql表中所有数据的日期时间(准确地说,在原始日期时间值的基础上再增加8小时)
我知道这可以通过编写一个简单的PHP脚本来循环该表中的所有行,并根据需要修改datetime值来实现,但如果有人能告诉我这可以在MySQL中实现,那将很有趣(也很酷!)。请注意,您只需执行
会话\u开始+间隔8小时
。我不知道它有这么简单。非常感谢@LightnessRacesinOrbit我用谷歌搜索过。不知道MySQL DATE_ADD()参数可以用当前列名作为参数,你看过MySQL手册了吗?
UPDATE tablename SET
session_start=DATE_ADD(session_start INTERVAL 8 HOUR),
session_close=DATE_ADD(session_close INTERVAL 8 HOUR)
WHERE
whatever