Mysql
 sql >> база данни >  >> RDS >> Mysql

SQL случай, когато FROM(UNIX_TIME)

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Търсете текст в полета във всяка таблица на MySQL база данни

  2. Предайте масив на съхранената рутина в MySQL

  3. Защо INNER JOIN не е равно (!=) да виси завинаги

  4. MySQL:уникалното поле трябва да бъде индекс?

  5. MySql с JAVA грешка. Последният пакет, изпратен успешно до сървъра, беше преди 0 милисекунди