FROM_UNIXTIME() geeft een tijdstempelwaarde terug. Uit de handleiding: .
Wat nu verwarrend kan zijn, is het feit dat er rekening wordt gehouden met tijdzones met tijdstempel.
Als u zich in de tijdzone GMT+1h bevindt, is dit
select unix_timestamp('1970-01-01 00:00:00');
retourneert
+---------------------------------------+
| unix_timestamp('1970-01-01 00:00:00') |
+---------------------------------------+
| 0 |
+---------------------------------------+
Aangezien er rekening wordt gehouden met de tijdzone, is dit
select unix_timestamp('1970-01-01 01:00:00');
komt nog steeds terug
+---------------------------------------+
| unix_timestamp('1970-01-01 01:00:00') |
+---------------------------------------+
| 0 |
+---------------------------------------+
Maar dit...
select unix_timestamp('1970-01-01 01:00:01');
+---------------------------------------+
| unix_timestamp('1970-01-01 01:00:01') |
+---------------------------------------+
| 1 |
+---------------------------------------+
en dit
select unix_timestamp('1970-01-01 02:00:00');
+---------------------------------------+
| unix_timestamp('1970-01-01 02:00:00') |
+---------------------------------------+
| 3600 |
+---------------------------------------+
retourneer nu "juiste" waarden.
BIJWERKEN:
Gemakkelijke en snelle oplossing:
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