Дата-время на стороне сервера C #

#c# #datetime #storage

#c# #дата-время #Хранение

Вопрос:

Пожалуйста, скажите мне, хорошо ли хранить дату-время, например, время создания записей, на сервере в тиках?

 DateTime.Ticks
  

Комментарии:

1. Что плохого в том, чтобы просто сохранить его как DateTime ? И если вы не можете, то, возможно, лучше сохранить его в виде строки, как в XML, потому что при его разборе не возникает сомнений. Ticks — это число с неизвестного момента времени, что, если этот момент отличается в разных культурах / серверах / системах?

2. Что не так с сохранением в формате DateTime? отметки будет сложнее прочитать, если вы просматриваете данные в таблице

3. Я не хочу сохранять его в форматированной строке;) Мне легко манипулировать значениями Int64;)

4. Ваша причина, по которой вы не делаете это «правильным» способом, ошибочна (на самом деле у вас нет причины), помимо «вы не хотите этого делать» и «это проще», конечно, проще, то, как вы знаете, как это сделать, не означает, что это правильный способ. Кроме того, вы спросили, было ли это «хорошо», и простой ответ — это плохой и неэффективный метод.

Ответ №1:

Если нет никаких шансов, что кто-либо когда-либо захочет просмотреть сохраненные данные вручную, или есть особые требования к этому уровню точности, тогда прекрасно. Но, как правило, мне это не нравится, смотреть на данные о днях в базе данных, когда дата находится в каком-то неясном формате, — это боль!

Ответ №2:

Зачем вам это делать? Нет никаких штрафных санкций за сохранение его как обычного DateTime. Лучший вопрос, который вы должны задать себе, заключается в том, как вы будете обрабатывать разные часовые пояса.

Мы храним все даты в базе данных как UTC и выполняем соответствующее преобразование на основе часового пояса, выбранного пользователем, или часового пояса сервера. Обычно выбирается пользователем, потому что пользователю имеет больше смысла обрабатывать время в его собственном часовом поясе, но тогда данные будут использоваться людьми в разных часовых поясах.

Ответ №3:

Каждая современная база данных имеет DATETIME , DATE и / или TIMESTAMP типы данных, поэтому нет необходимости использовать Int64 .

Но вы могли бы использовать DateTime.Ticks , например, при сохранении данных в текстовый файл. Кажется, это хороший вариант в этом случае.