gpt4 book ai didi

php - 更正 MySQL 中的日期和时间列

转载 作者:行者123 更新时间:2023-11-30 23:42:48 27 4
gpt4 key购买 nike

我需要在表格中更正时区不匹配问题。 unix 时间戳 1253568477 之前的所有日期和时间都需要在其值中加上 5 小时才能使它们等于 GMT。

我有以下列...

date(数据类型date),关闭-5小时

time(数据类型time),关闭-5小时

timestamp(数据类型int),此列为正确时间

时区关闭的原因是我在插入行时设置值的方式...

$sql = "insert into email_opens (userid, email, serial, date, time, timestamp) values (
'$userid',
'$opened_by',
'$serial_number',
now(),
now()',
'".gmmktime()."'
)";

now() 值使用服务器时区(东部),而 gmmktime 值指定 GMT。我已更正此查询以始终使用 GMT。

有没有一种方法可以在一次批量查询中为那些时间戳 < 1253568477 的行的 timedate 列添加 5 小时?

澄清:

我的目标是通过为每个值增加 5 小时来用正确的时间更新表中每个不正确的行。

最佳答案

试试这个:

UPDATE mail_opens SET date = DATE_ADD(CONCAT(date, ' ', time), INTERVAL 5 HOUR), time = DATE_ADD(CONCAT(date, ' ', time), INTERVAL 5 HOUR);

然后你可能需要这个:

<?php
echo date('Y-m-d H:i:s')."<br>";
$addhours = strtotime('+5 hour');
echo $addhours."<br>";
$newdate = date('Y-m-d H:i:s', $addhours);
echo $newdate;
?>

因此,使用它:

<?php
$addhours = strtotime('+5 hour');
$newdate = date('Y-m-d H:i:s', $addhours);
$sql = "insert into email_opens (userid, email, serial, date, time, timestamp) values (
'$userid',
'$opened_by',
'$serial_number',
'$newdate',
'$newdate',
'".gmmktime()."'
)";
?>

关于php - 更正 MySQL 中的日期和时间列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1457144/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com