Сохранение отметки времени unix по сравнению со строкой с UTC - PullRequest
0 голосов
/ 04 августа 2020

Сегодня я разговариваю с моими коллегами-разработчиками о разработке приложений и баз данных в Fintech.

Как мы справляемся со временем? Все мы знаем, что нам нужно хранить информацию о дате и времени, нормализованную в UT C. Но наша дискуссия заключается в том, следует ли хранить в 1) unix метку времени эпохи, которая является целым числом в нашей базе данных, например, 1596507157. что составляет 08/04/2020 @ 2:12am UTC или 2) сохранить в формате ISO 8601 в виде строки 2020-08-04T02:12:37+00:00 или 2020-08-04T02:12:37.123456789Z

Обратной стороной unix timestamp, очевидно, не является немедленное чтение человеком.

Я ищу несколько советов по дизайну о том, следует ли нам использовать любой из подходов.

Ответы [ 2 ]

1 голос
/ 04 августа 2020

На мой взгляд, вы должны хранить его как целое число, а не строку, одна из многих причин очевидна: int просто нужно 4 байта, а строка, поскольку ISO 8601 занимает намного больше.

Что вы видите как недостаток , это не влияет на серверную часть, это просто макияж (требуется только для просмотра пользователем).

0 голосов
/ 04 августа 2020

Большинство баз данных имеют тип данных datetime. Я предполагаю, что ваша «временная метка эпохи» означает этот тип данных datetime или timestamp. Проще (и с большей производительностью) обрабатывать тип datetime для инженера базы данных. и база данных также имеет функцию форматирования даты и времени. (Oracle / MS SQL Server - convert, MySQL - date_format, PostgreSQL - to_char ...)

По моему мнению, хранить и обрабатывать с типом datetime и использовать функцию форматирования для человека.

...