Как указать формат даты при создании таблицы и заполнить ее в SQL?
Всякий раз, когда мы работаем с базами данных, мы обнаруживаем, что почти каждая отдельная таблица содержит столбец Date. Ведь дата данных играет важную роль при их анализе. Хранение дат в определенном или понятном формате очень важно. В этой статье мы узнаем, как указать формат даты в SQL Server.
Давайте создадим нашу демонстрационную базу данных и таблицу.
Шаг 1: Создайте базу данных
Используйте следующую команду для создания базы данных.
Запрос:
CREATE DATABASE User_details;
Шаг 2: Используйте базу данных
Запрос:
USE User_details;
Шаг 3: Определение таблицы
У нас есть следующая таблица GFG_user в базе данных.
Запрос:
CREATE TABLE GFG_user(Id INT NOT NULL,Dt DATE, Address VARCHAR(100),Dt_FORMATTED AS (convert(varchar(255), dt, 104)), PRIMARY KEY (Id) );
Выход:
Здесь мы создали столбец с именем Dt_FORMATTED, где мы собираемся сохранить нашу отформатированную дату.
Теперь мы видим функцию CONVERT() . Функция CONVERT() просто преобразует значение любого типа в указанный тип данных.
Синтаксис:
CONVERT ( data_type ( length ) , expression , style )
Используя эту функцию, мы преобразуем строку в дату. Вместо аргумента стиля мы упомянули «104» . Это числовой код для указания формата даты.
Проверьте эту таблицу, чтобы увидеть разные коды, используемые для разных форматов:
С век(гг) | С век(гггг) | Стандарт | Ввод, вывод |
– | 0 или 100 ( 1,2 ) | Дата и время по умолчанию и маленькое время | пн дд ггг чч: miAM (или PM) |
1 | 101 | НАС | 1 = мм/дд/гг 101 = мм/дд/гггг |
2 | 102 | ANSI | 2 = гг.мм.дд 102 = гггг.мм.дд |
3 | 103 | британский/французский | 3 = дд/мм/гг 103 = дд/мм/гггг |
4 | 104 | Немецкий | 4 = дд.мм.гг 104 = дд.мм.гггг |
11 | 111 | ЯПОНИЯ | 11 = гг/мм/дд 111 = гггг/мм/дд |
12 | 112 | ИСО | 12 = ггммдд 112 = ггггммдд |
– | 13 или 113 ( 1,2 ) | Европа по умолчанию + миллисекунды | дд пн гггг чч:ми:сс:ммм (24ч) |
– | 131 ( 2 ) | Хиджра ( 5 ) | дд/мм/гггг чч:ми:сс:мммAM |
Здесь мы упомянули только 10 наиболее часто используемых форматов.
Шаг 4. Вставьте значения
Следующая команда используется для вставки значений в таблицу.
Запрос:
SET DATEFORMAT dmy; INSERT INTO GFG_user (Id, Dt, Address) VALUES ("1","23.11.2021", "German");
В этом запросе мы используем параметр DATEFORMAT .
Синтаксис:
SET DATEFORMAT format
Когда мы вставляем строку, сервер попытается преобразовать строку в дату, прежде чем вставлять ее в таблицу. Поскольку он не может сказать, ставим ли мы месяц перед датой или дату перед месяцем. Например, предположим, что вы пытаетесь вставить 06.07.2000. Сервер не может определить, является ли дата 6 июля или 7 июня. Хотя он использует настройки локализации учетной записи пользователя, которая работает, чтобы выяснить, что неупоминание DATEFORMAT может привести к ошибке, поскольку в большинстве случаев учетная запись, в которой выполняется операция, настроена на формат США, то есть - Месяц День Год (мдй) .
Ошибка была вызвана тем, что мы хотели сохранить его как dmy , а не mdy . Однако использование DATEFORMAT поможет вам избавиться от него.
Выход:
Мы закончили с нашей таблицей, теперь давайте проверим, получаем ли мы желаемый результат или нет.
Шаг 5: Просмотрите данные таблицы
Запрос:
SELECT * FROM GFG_user;
Выход:
Мы успешно получили дату в немецком формате в столбце Dt_FORMATTED.