MySQL Doğru Tarih ve Saat Sütunlar

2 Cevap php

Ben bir tablo düzeltmek için gereken bir zaman dilimi uyumsuzluk var. Unix timestamp 1253568477 önce tüm tarihler ve saatler GMT onları eşit yapmak için 5 saat kendi değerlerine ilave olması gerekir.

Ben şu sütunları var ...

date (veri türü date), kapalı -5 saat

time (veri türü time), kapalı -5 saat

timestamp (veri türü int), bu sütun doğru zamanı

Dilimleri kapalı nedeni satır eklerken ben değerleri batıyordu yol olduğunu ...

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

now() değeri gmmktime değer belirtilen GMT oysa sunucusu saat dilimini (doğu) kullanıyordum. O zamandan beri hep GMT kullanmak için bu sorguyu düzeltildi.

Ben timestamp time ve date sütununa 5 saat ekleyebilirsiniz bir yolu var mı Tek bir toplu sorguda 1253568477?

Açıklama:

Amacım her değere 5 saat ekleyerek doğru zaman tablodaki her yanlış satır güncellemek için olduğunu.

2 Cevap

Bu deneyin:

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

Ve o zaman muhtemelen bu gerekir:

<?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;
?>

Yani, bu kullanarak:

<?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()."'
)";
?>

Yalnızca dilimi değişikliği unix timestamp daha az bir değere sahip kayıtları güncellemek için biliyorum emin, sen sorunu düzeltilmiş zaman işe.

Sonra alanını güncelleştirmek ve bu kayıtlara * 5 60 * 60 (saniyede 5 saat) ekleyin.

Yani, sorgu aşağıdaki gibi olacaktır:

UPDATE email_opens SET timestamp = (timestamp + 18000) WHERE timestamp < 1253568477;

Serin.