2017-03-14 3 views
1

Ich habe einige vorhandene Daten, die ich zu aktualisieren versuche, außerhalb einer geplanten Aufgabe, die in meiner Anwendung ausgeführt wird.Rundenzeitstempel bis zur nächsten Minute

Die geplante Aufgabe ruft einige Daten ab und fügt sie dann in meine Datenbank ein, was zu Zeitstempeln führt, die nur eine Sekunde lang eine runde Sekunde sind (z. B. 2017-14-03 08:00:02).

Ich versuche eine Select-Anweisung zu perfektionieren, bevor ich sie in einem Update verwende. Bisher habe ich dies:

SELECT server_name, connected_count, TIME_FORMAT(SEC_TO_TIME((TIME_TO_SEC(created_at) DIV 60) * 60), '%Y-%m-%d %H:%i:%s') AS rounded_time FROM `server_tracking` 

Das funktioniert perfekt für die Zeit, es Rundung auf die nächste Minute nach unten, aber es fällt das Datum; lass mich mit 0000-00-00 08:00:00.

Wie kann ich dies aktualisieren, um das Datum auch zu übertragen?

Antwort

2

Sie können einfach DATE_FORMAT() verwenden und ersetzen Sie die Sekunden mit 0:

SELECT 
server_name, 
connected_count, 
DATE_FORMAT(created_at, '%Y-%m-%d %H:%i:00') AS rounded_time 
FROM `server_tracking` 
+0

Das ist für mich völlig in Ordnung funktioniert. – James

Verwandte Themen