FROM_UNIXTIME() gibt einen Zeitstempelwert zurück. Aus dem Handbuch: .
Was jetzt verwirrend sein kann, ist die Tatsache, dass Zeitzonen mit timestamp berücksichtigt werden.
Wenn Sie sich in der Zeitzone GMT+1h befinden, ist dies
select unix_timestamp('1970-01-01 00:00:00');
zurück
+---------------------------------------+
| unix_timestamp('1970-01-01 00:00:00') |
+---------------------------------------+
| 0 |
+---------------------------------------+
Da die Zeitzone berücksichtigt wird, ist dies
select unix_timestamp('1970-01-01 01:00:00');
kehrt immer noch zurück
+---------------------------------------+
| unix_timestamp('1970-01-01 01:00:00') |
+---------------------------------------+
| 0 |
+---------------------------------------+
Aber das...
select unix_timestamp('1970-01-01 01:00:01');
+---------------------------------------+
| unix_timestamp('1970-01-01 01:00:01') |
+---------------------------------------+
| 1 |
+---------------------------------------+
und das
select unix_timestamp('1970-01-01 02:00:00');
+---------------------------------------+
| unix_timestamp('1970-01-01 02:00:00') |
+---------------------------------------+
| 3600 |
+---------------------------------------+
gibt nun "korrekte" Werte zurück.
AKTUALISIEREN:
Einfache und schnelle Lösung:
SELECT
CASE
WHEN t.escalation_time = 0 THEN 0
WHEN FROM_UNIXTIME( t.escalation_time ) = '1970-01-01 00:00:00' THEN 0
ELSE FROM_UNIXTIME( t.escalation_time )
END
FROM ticket t WHERE t.id =1