Основные различия между DATETIME
и TIMESTAMP
в большинстве SQL-баз данных (например, MySQL) заключаются в следующем:
Хранение:
DATETIME
хранит год, месяц, день, час, минуту, секунду.TIMESTAMP
хранит количество секунд, прошедших с начала эпохи Unix (1 января 1970 года UTC).Диапазон значений:
DATETIME
обычно имеет более широкий диапазон дат (например, от '1000-01-01 00:00:00' до '9999-12-31 23:59:59').TIMESTAMP
имеет ограниченный диапазон, зависящий от 32-битного или 64-битного представления, обычно до 2038 года для 32-битного.Временная зона:
DATETIME
не зависит от временной зоны и сохраняет точное введенное значение.TIMESTAMP
преобразуется из текущей временной зоны в UTC при сохранении и обратно при извлечении, поэтому значение зависит от временной зоны клиента.Размер:
TIMESTAMP
меньше (4 байта
) по сравнению с DATETIME
(8 байт
).Автоматическое обновление:
TIMESTAMP
может быть настроен на автоматическое обновление при изменении строки (если используется по умолчанию или указано ON UPDATE CURRENT_TIMESTAMP
), что удобно для полей, отслеживающих время последнего изменения записи. DATETIME
не имеет такой встроенной возможности (хотя можно добиться подобного триггерами).Табл
Основные различия между DATETIME
и TIMESTAMP
в большинстве SQL-баз данных (например, MySQL) заключаются в следующем:
Хранение:
DATETIME
хранит год, месяц, день, час, минуту, секунду.TIMESTAMP
хранит количество секунд, прошедших с начала эпохи Unix (1 января 1970 года UTC).Диапазон значений:
DATETIME
обычно имеет более широкий диапазон дат (например, от '1000-01-01 00:00:00' до '9999-12-31 23:59:59').TIMESTAMP
имеет ограниченный диапазон, зависящий от 32-битного или 64-битного представления, обычно до 2038 года для 32-битного.Временная зона:
DATETIME
не зависит от временной зоны и сохраняет точное введенное значение.TIMESTAMP
преобразуется из текущей временной зоны в UTC при сохранении и обратно при извлечении, поэтому значение зависит от временной зоны клиента.Размер:
TIMESTAMP
меньше (4 байта
) по сравнению с DATETIME
(8 байт
).Автоматическое обновление:
TIMESTAMP
может быть настроен на автоматическое обновление при изменении строки (если используется по умолчанию или указано ON UPDATE CURRENT_TIMESTAMP
), что удобно для полей, отслеживающих время последнего изменения записи. DATETIME
не имеет такой встроенной возможности (хотя можно добиться подобного триггерами).Табл
Register or sign in to get access to full answers for all questions from the question bank.