Я должен использовать большой INT или регулярный INT в MySQL для хранения метки времени?

Я должен использовать большое целое число или регулярное целое число в MySQL для хранения метки времени в? Я планирую хранение его в INT а не созданном в метке времени или дате и времени поэтому, какой тип INT я должен использовать?

10
задан JasonDavis 8 January 2010 в 22:29
поделиться

3 ответа

[

] В 2038 году (если вы используете временную метку UNIX) значение переменной будет отрицательным: []http://en.wikipedia.org/wiki/2038_problem[]. [

] [

] так что БИГИНТ, вероятно, самый безопасный выбор [

].
13
ответ дан 3 December 2019 в 14:11
поделиться
[

] Надо хранить его в метке времени, так как, скорее всего, именно ее СУБД оптимизирует для данных с метками времени.[

] [

]Мне любопытно, зачем жертвовать всей той тяжелой работой, которую вложили разработчики MySQL, чтобы метки времени работали так, как надо, и заменять их тем, что почти наверняка не будет работать так же хорошо. [

] [

] Поскольку вы не указываете [], почему [] вы хотите использовать целое число, я просто предполагаю, что это было временное безумие, и что вскоре вы восстановите :-)[

].
14
ответ дан 3 December 2019 в 14:11
поделиться
[

] Я думаю, это полностью зависит от того, что вы хотите сделать. Есть несколько правильных типов времени/даты (см.: []http://dev.mysql.com/doc/refman/5.0/en/date-and-time-type-overview.html[])[

] [
    ] [
  • ][]DATE[] - обычно 3 байта, диапазон: []1000-01-01[] to []9999-12-31[]. [
  • ] [
  • ][]DATETIME[] - 8 байт, диапазон []1000-01-01 00:00:00[] до []9999-12-31 23:59:59[][
  • ] [
  • ][]TIMESTAMP[] - 4 байта, диапазон []1970-01-01 00:00:01[] UTC до []2038-01-19 03:14:07[] UTC. Далее, есть некоторые семантические вопросы, о которых следует знать: [
  • ] [
] [

](int - 4 байта, как TIMESTAMP, bigint - 8 байт, как DATETIME)[

] [
    ] [
  • ]метка даты хранит календарные дни, время и метку времени и хранит дату+время со второй точностью (субсекундная точность поддерживается в арифметике дат, но не для хранения) [
  • ] [
  • ]метка времени хранит значение UTC. То есть любое значение, которое вы туда вставляете, преобразуется из часового пояса сеанса (по умолчанию - часового пояса сервера) в UTC и сохраняется. При получении, UTC значение преобразуется обратно в часовой пояс, действующий в сессии. Штемпель времени [
  • ] [
  • ] может быть объявлена, чтобы автоматически получить текущую метку времени при вставке или обновлении, или и то, и другое. Лучше всего ознакомиться с руководством (см. []http://dev.mysql.com/doc/refman/5.1/en/timestamp.html[])[
  • ] [
]
9
ответ дан 3 December 2019 в 14:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: