2016-08-16 4 views
1

У меня есть таблица MySQL, где столбец _update - timestamp. У меня проблема, и не понимаю, почему, когда я выбираю этот столбец, возвращается в формате datetime, а не в integer? В JavaScript timestamp Unix возвращается как целое число, в PHP время() является целым числом, но в MySQL это datetime? Зачем?MySQL Timestamp return as datetime, not integer

Я знаю, что могу использовать bigint тип, но хочу добавить timestamp для строки, когда я вставляю данные из phpmyadmin и обновляю временную метку, когда данные обновляются (это можно установить только в столбце типа timestamp).

+0

Нигде в документах сказано, что это временная метка ** Unix ** вообще. –

+0

У вас есть тип данных timestamp', и вы получаете значение timestamp в качестве возвращаемого значения, если только вы не манипулируете им, чтобы вернуть 'unix_timestamp'. – 1000111

+0

У меня есть настройки по умолчанию в config phpmyadmin, но когда у меня есть данные вставки, в '_update' вводится формат datetime, когда я хочу значение чисел – Peter

ответ

0

Я думаю, что сомнение исходит из неправильного предположения, что timestamp всегда относится к Unix time. Тем не менее, это довольно общее английское слово, которое широко используется в ИТ для довольно different time-related concepts.

В случае MySQL TIMESTAMP column type, в то время как верно, что она хранится внутри, как Unix временной метки:

TIMESTAMP значения сохраняются как число секунд с начала эпохи ('1970-01-01 00:00 : 00 'UTC).

... такая деталь главным образом не имеет значения (так как большинство внутреннего представления), потому что интерфейс такой же, как любой другой тип даты: строка в фиксированном удобочитаемый формата, например:

'2038-01-19 03:14:07.999999' 

И, как и в любом другом типе даты столбца, у вас есть соответствующие функции для преобразования из/в строку каждый раз, когда вы/нужен другой формат строку:

+0

Но Я не понимаю, почему type 'timestamp' не является номером возврата? Во многих стихах написано, что это числа второго, а во многих словарных функциях языка программирования число секунд, число, а не datetime :-) теперь, в моем проекте я использую эти функции для преобразования datetime UNIX_TIMESTAMP() и FROM_UNIXTIME() – Peter

+0

Это именно то, что я имел в виду с ** неправильным допущением, что временная метка всегда относится к времени Unix **. –

+0

У меня была та же проблема, что и временная метка имени в виде нескольких секунд, мы ожидаем целое число, но база данных хранит номер в формате «date time», создавая путаницу при попытке отформатировать номер. – Gustavo

Смежные вопросы