Ведь дата может быть представлена в разных форматах:
12.08.20248/12/202412/8/2024 12 августа 2024И так далее.
Ну и какой тогда здесь закладывать тип данных?
Классно, если вы задаетесь этим вопросом, а не просто пишите
date для любой даты. А чем так плох тип данных date? - спросите вы.
В некоторых случаях использование
date вполне оправдано, да и в памяти он занимает всего 4 байта, но важно понимать, что в этом случае точность будет до дня – а не в часах. Например, если нам нужно просто знать дату – 12.08.2024, то это ок, но если конкретное время с указанием часового пояса, то нужно использовать другой тип данных.Какой?
Будем с этим разбираться далее.
Кстати, когда мы вводим значение, мы обязательно заключаем их в одинарные кавычки.
И пару слов про часовые пояса:
▪️часовой пояс записывается в виде знака «+» или «-», означающего смещение часового пояса, после него нужна цифра, указывающая на сколько часов смещение
▪️по умолчанию
timestamp подразумевает timestamp without time zone (время без часового пояса). Если вам нужно указать часовой пояс, то нужно явно прописать timestamp with time zone (время с указанием часового пояса), чтобы избежать такой ошибки, когда хотим указать часовой пояс, но пишем TIMESTAMP '2024-08-12 11:03:45+02'т.к. PostgreSQL распознает это, как тип
timestamp without time zone. Вместо этого нужно написать TIMESTAMP WITH TIME ZONE '2024-08-12 11:03:45+02'. ▪️Внутри БД
timestamp with time zone всегда хранятся в UTC. Если вы вводите значение с явно указанным часовым поясом, оно автоматически переводится в UTC с учётом этого пояса. Если же часовой пояс не указан, то используется часовой пояс, заданный в системных настройках (TimeZone). В этом случае время также переводится в UTC с учётом соответствующего смещения.Завтра рассмотрим тему про локали, а потом чуть больше примеров для лучшего понимания темы.
Дайте огней, если интересно🔥