SQL-сервер ДАТА

В этом руководстве вы узнаете, как использовать SQL Server DATE для хранения данных о датах в таблице.

Введение в SQL Server DATE

Для хранения данных о дате в базе данных используется тип данных SQL Server DATE. Синтаксис DATE следующий:

DATE

В отличие от типа данных DATETIME2, тип данных DATE имеет только компонент даты. Диапазон значения DATE — от 1 января 1 г. н. э.(0001-01-01) до 31 декабря 9999 г. н. э.(9999-12-31).

Для хранения значения ДАТЫ требуется 3 байта. Формат строки литерала по умолчанию для значения ДАТЫ следующий:

YYYY-MM-DD

В этом формате:

  • YYYY — это четыре цифры, обозначающие год, диапазон которых составляет от 0001 до 9999.
  • ММ — это две цифры, обозначающие месяц года, которые варьируются от 01 до 12.
  • DD — это две цифры, обозначающие день указанного месяца, который может иметь значение от 01 до 31 в зависимости от месяца.

Примеры SQL Server DATE

A) Запрос данных из таблицы на основе значений DATE

Давайте посмотрим на таблицу sales.orders из примера базы данных :

В следующем примере возвращаются все заказы, дата заказа которых приходится на более раннюю дату, чем 05 января 2016 года:

SELECT    
 order_id, 
 customer_id, 
 order_status, 
 order_date
FROM    
 sales.orders
WHERE order_date < '2016-01-05'
ORDER BY 
 order_date DESC;

Вот что получилось:

Пример даты SQL Server

Б) Пример использования ДАТЫ для определения столбцов таблицы

Следующий оператор создает таблицу с именем sales.list_prices, которая содержит два столбца DATE:

CREATE TABLE sales.list_prices(
    product_id INT NOT NULL,
    valid_from DATE NOT NULL,
    valid_to DATE NOT NULL,
    amount DEC(10, 2) NOT NULL,
    PRIMARY KEY(
        product_id,
        valid_from,
        valid_to
    ),
    FOREIGN KEY(product_id) 
      REFERENCES production.products(product_id)
);

Следующий оператор INSERT иллюстрирует, как вставить в таблицу строку с буквальными значениями даты:

INSERT INTO sales.list_prices(
    product_id,
    valid_from,
    valid_to,
    amount
)
VALUES
   (
        1,
        '2019-01-01',
        '2019-12-31',
        400
    );

В этом руководстве вы узнали, как использовать тип данных SQL Server DATE для хранения данных о датах в таблице.

Мирослав С.

Автор статей, ИБ-специалист