Почему UNIX_TIMESTAMP от MySQL возвращает нечетные значения, такие как «% qd» в MySQL 5.5? - PullRequest
3 голосов
/ 16 ноября 2011

Я пытаюсь запросить данные о времени из MySQL в PHP, используя такой метод:

SELECT UNIX_TIMESTAMP( DATE_ADD( a.`date_time`, INTERVAL 1 DAY ) ) * 1000 AS time FROM `graph_values` AS a

На рабочем сервере с MySQL 5.0.x возвращается метка времени Unix, как и ожидалось.Однако на сервере разработки под управлением MySQL 5.5.x возвращается строка "%qd".Я попытался CAST результат получить целое число без знака, следуя некоторым советам в документации MySQL на этой странице:

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp

Когда я приводил результат UNIX_TIMESTAMPфункционируя как UNSIGNED, запрос вернул другую строку, "%qu".

Итак, очевидно, что на нечетную строку влияет тип данных возвращаемых данных, но я никогда не видел PHP /MySQL ведет себя так.

Примечание: это использует PHP и mysqli.

Есть предложения?

1 Ответ

1 голос
/ 24 ноября 2011

Вы пытались привести результат к другому типу (со знаком int, десятичное число)?

Если все пойдет не так - вы можете использовать что-то вроде FROM_UNIXTIME (UNIX_TIMESTAMP (), '% s');«бросить» это по-другому.http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_from-unixtime

Не то, что я хотел бы иметь в моем рабочем коде, хотя ...

...