2016-04-26 6 views
2

Wie kann ich MySQL-Anzeige TIME Spalten Daten von 3.07:10:10 zu 79:10:10 zwingen?MySQL TIME-Typ mit Stunden> 23

Also die Abfrage SELECT item FROM table_ sollte die TIME im Format 79:10:10 zurückgeben.

bearbeiten: TIME speichern Stunden, von '-838: 59: 59' bis '838: 59: 59'.

Ich versuchte SELECT TIME_FORMAT('3.07:10:10', '%H:%i:%s') und unerwartet kehrt er 00:00:03

+1

@Perl Dog Die einzigen Öffnungszeiten des Ladens finden Sie hier: http://dev.mysql.com/doc/refman/5.7/en/time.html – MATH000

+0

Uhh, Entschuldigung, Sie haben Recht. Das wusste ich wirklich nicht. Dachte, es ist nur 24 Stunden. max. – PerlDuck

+0

Und dann funktioniert [TIME_FORMAT] (https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_time-format) nicht? Wie 'TIME_FORMAT (Element, '% H:% M:% S)'? – PerlDuck

Antwort

2

(ich die OP verantwortlich gemacht, weil ich dachte TIME Spalten nur zu 24 Stunden speichern kann That's not true. Sie speichert bis 838 Stunden auf ± Leider & Dank dafür. .)

Zum einfügen/Tage in TIME-Spalten verwenden, die folgende Syntax verwenden:

mysql> SELECT TIME('3 07:10:10'); 
+--------------------+ 
| TIME('3 07:10:10') | 
+--------------------+ 
| 79:10:10   | 
+--------------------+ 
1 row in set (0.00 sec) 

Das heißt: Ersetzen Sie den Punkt in 3.07:10:10 durch ein Leerzeichen.

Vom docs:

MySQL TIME-Werte in diesen Formaten erkennt:

  • Als Zeichenfolge in 'D HH: MM: SS' Format. Sie können auch eine der folgenden "entspannten" Syntaxen verwenden: "HH: MM: SS", "HH: MM", "D HH: MM", "D HH", oder "SS". Hier D für Tage und kann einen Wert von 0 bis 34.
  • haben ...

Wenn Sie '3 07:10:10' in eine TIME Spalte einfügen, wird es automatisch 79:10:10 bei der Auswahl geben.