FROM_UNIXTIME()ए> एक टाइमस्टैम्प मान देता है। मैनुअल: से ।
अब जो भ्रमित हो सकता है, वह यह है कि टाइमज़ोन को टाइमस्टैम्प के साथ माना जाता है।
यदि आप समय क्षेत्र GMT+1h में हैं, तो यह
select unix_timestamp('1970-01-01 00:00:00');
रिटर्न
+---------------------------------------+
| unix_timestamp('1970-01-01 00:00:00') |
+---------------------------------------+
| 0 |
+---------------------------------------+
चूंकि समय क्षेत्र माना जाता है, यह
select unix_timestamp('1970-01-01 01:00:00');
अभी भी लौटता है
+---------------------------------------+
| unix_timestamp('1970-01-01 01:00:00') |
+---------------------------------------+
| 0 |
+---------------------------------------+
लेकिन यह...
select unix_timestamp('1970-01-01 01:00:01');
+---------------------------------------+
| unix_timestamp('1970-01-01 01:00:01') |
+---------------------------------------+
| 1 |
+---------------------------------------+
और यह
select unix_timestamp('1970-01-01 02:00:00');
+---------------------------------------+
| unix_timestamp('1970-01-01 02:00:00') |
+---------------------------------------+
| 3600 |
+---------------------------------------+
अब "सही" मान लौटाएं।
अद्यतन:
आसान और त्वरित समाधान:
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