TIMESTAMP или DATE/TIME
Поговорим о принятии решения о создании базы данных, в которой вам нужно хранить информацию о дате и времени в одной строке в db2. Лучше ли будет использовать один столбец TIMESTAMP или два столбца: один DATE, а другой TIME?
Конечно же ответом будет: “Все зависит от обстоятельств”. Правильное решение будет зависеть от нескольких факторов, характерных для вашей ситуации. Перед принятием решения рассмотрите следующие моменты:
- С DATE и TIME вы должны использовать два столбца. TIMESTAMP использует один столбец, что упрощает доступ к данным и их модификацию.
- Для комбинации столбцов DATE и TIME требуется 7 байт памяти, а в столбце TIMESTAMP всегда требуется 10 байт памяти. Использование комбинации столбцов DATE и TIME позволит сэкономить место.
- TIMESTAMP обеспечивает большую точность времени, вплоть до микросекундного уровня. TIME обеспечивает точность только на втором уровне. Если точность важна, используйте TIMESTAMP. Используйте TIME, если вы хотите убедиться, что фактическое время НЕ хранится до уровня микросекунды.
- TIMESTAMP всегда можно разбить на компонент DATE и TIME, после чего вы можете обрабатывать данные так же, как данные DATE и TIME.
- Счет даты и времени, вероятно, будет проще реализовать с использованием данных TIMESTAMP вместо комбинации DATE и TIME. Вычитание одного TIMESTAMP из другого результата приводит к длительности TIMESTAMP. Чтобы вычислить продолжительность с использованием столбцов DATE и TIME, должны выполняться две операции вычитания: одна для столбца DATE и одна для столбца TIME.
- Форматирование может быть проще с данными DATE и TIME. db2 обеспечивает форматирование столбцов DATE и TIME через локальные выходы DATE и TIME, функцию CHAR и параметры предварительного компилятора DATE и TIME. Если информация о дате и времени должна быть извлечена и отображена в отчете или онлайн-приложении, то при принятии решения следует учитывать наличие этих средств, предоставляемых DB2 для столбцов DATE и TIME.
- До db2 V9 для форматирования столбцов TIMESTAMP не было никакой помощи. Но db2 9 для z / OS добавляет функцию TIMESTAMP_FORMAT, которая предлагает три разных формата для отображения данных метки времени.
Просмотрев все эти данные и опираясь на ваши требования к использованию, вы можете принять обоснованное решение о том, использовать ли один столбец TIMESTAMP или два столбца, DATE и TIME.