2016-04-11 5 views
1

Format Datetime in Mysql vorhandener TabelleWie Datetime-Format in einer MySQL-Tabelle

Erste Ausgabe ändern:

in MySQL-Tabelle, sind einige von Datetime in 'Ymd H: 01: 00' -Format .

ich möchte sie im 'Y-m-d H: 00: 00' Format formatieren.

zweite Ausgabe:

in einer anderen Tabelle, würde ich Format wie die vorhandene Datumzeit zum nächsten 'Ymd H: 05: 00' oder 'Ymd H: 10: 00' oder ‚Ymd H : 15: 00 'oder' Ymd H: 20: 00 '....

Wie kann ich die Daten in der mySql-Tabelle ändern?

Update:

ich für die erste Ausgabe gefunden:

UPDATE `table` SET timeStamp = date_format(timeStamp,'%Y-%m-%d %H:00:00') 
+0

1) Möchten Sie die Daten formatieren (ändern Sie ihr Aussehen, wenn Sie sie abfragen) oder die zugrunde liegenden Feldwerte tatsächlich ändern? 2) Was genau ist das Format "Y-m-d H: 01: 00"? 3) Was hast du bisher versucht? – Shadow

+0

1) Ich muss den Wert in der vorhandenen Tabelle ändern. 2) 'Y-m-d H: 01: 00' ist das vorhandene Datum in der Tabelle, ersetzt durch 'Y-m-d H: 00: 00' – llaid

Antwort

1

ich die date_format() Funktion für jede nicht der Abfragen verwenden würden, da Sie die Datumswerte nicht formatieren wollen, Sie wollen, dass sie sich ändern!

1) Verwenden Minute() und zweite (Funktionen), um die Minuten und die zweiten Teil des Zeitstempels, um zu bestimmen und 1 Minute vom Wert abziehen:

UPDATE `table` SET timeStamp = timeStamp - INTERVAL 1 MINUTE 
WHERE minute(timeStamp)=1 and second(timeStamp)=0 

2) Siehe "How to round a time to the nearest 15 minute segment" SO Thema für eine Antwort. Ersetzen Sie einfach 900 Sekunden (15 Minuten) durch die Anzahl der Sekunden in 5 Stunden.

1

Verwenden DATE_FORMAT Funktion das Format zu ändern.

SELECT DATE_FORMAT(CURDATE(), '%d/%m/%Y') 

SELECT DATE_FORMAT(column_name, '%d/%m/%Y') FROM tablename 

beziehen sich diese weitere DOC