2012-05-23 26 views
5

ich die folgende INSERT-Anweisung bin mit:MySQL jetzt() Zeitzone ändern

INSERT INTO messages SET `to` = '".$to."', `from` = '".$this->userid."', `title` = '".$title."', `message` = '".$message."', `created` = NOW() 

Allerdings verwendet er meine Serverzeit (America/Montreal). Ich möchte Zeitzone von Asien (Asien/Kalkutta)

Ist dies mit der gleichen Abfrage möglich?

Antwort

6

Sie möchten fortfahren und die CONVERT_TZ()-Funktion in MySQL verwenden. Es basiert auf der Olson database, die Ihr Betriebssystem verwendet.

Here ist die Dokumentation.

+0

HALLO THX ABER FUNKTIONIERT NICHT "in Nachrichten INSERT SET' to' = ‚".. Auf $ " '' from' ='" $ this-> userid. "',' title' =' ". $ title." ', 'Nachricht' ='". $ Nachricht. "',' created' = CONVERT_TZ (NOW(),' America/Phoenix ', 'Asia/Calcutta) " – Harinder

+0

Führen Sie einen Subselect für das erstellte SELECT CONVERT_TZ durch (now(),' US/Eastern ',' US/Central '); – wesside

+0

Stattdessen müssen Sie möglicherweise die Zeitzonentabellen ausfüllen, siehe: http://stackoverflow.com/questions/2523286/mysql-convert-tz mysql_tzinfo_to_sql/usr/share/zoneinfo | mysql -u root mysql – wesside

0
$myDateTime = new DateTime('2012-05-23 17:01', new DateTimeZone('GMT')); 
$myDateTime->setTimezone(new DateTimeZone('Asia/Kolkata')); 
echo $myDateTime->format('Y-m-d H:i'); 

Nach Änderung oben genannten Code, wie gewünschte Format; Sie könnten $myDateTime Variable verwenden, um in die Datenbank einzufügen.

6

Nachdem Sie die Verbindung zu MySQL öffnen, wird die folgende als Abfrage:

SET time_zone = timezone; 

Dann alle Funktionen, die Sie tun für diese Verbindung für diese Zeitzone läuft (dh, bis Sie den „Link“, um die in der Nähe Datenbank“.

Wenn Sie die entsprechenden Berechtigungen verfügen, können Sie diese sperren "permanent"/ globaly. Tiemzone Strings sind Standard-Strings, wie Sie in Ihrer Frage haben.

http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html

+0

Zeitzone ist "+7: 00" – BSQ

0

besser verwenden, um das SQL-Format direkt in der Abfrage.

..`created` = CONVERT_TZ(NOW(),'SYSTEM','Asia/Calcutta')..