ВРЕМЯ SQL-сервера

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

Введение в тип данных SQL Server TIME

Тип данных SQL Server TIME определяет время суток на основе 24-часового формата. Синтаксис типа данных TIME следующий:

TIME[(fractional second scale) ]

Дробная секундная шкала определяет количество цифр для дробной части секунд. Дробная секундная шкала имеет диапазон от 0 до 7. По умолчанию дробная секундная шкала равна 7, если вы явно не укажете это.

Следующий пример иллюстрирует, как создать таблицу со столбцом TIME:

CREATE TABLE table_name(
    ...,
    start_at TIME(0),
    ...
);

Формат литерала по умолчанию для значения ВРЕМЕНИ:

hh:mm:ss[.nnnnnnn]

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

  • hh — это две цифры, представляющие час в диапазоне от 0 до 23.
  • мм — это две цифры, представляющие минуты в диапазоне от 0 до 59.
  • ss — это две цифры, представляющие секунды в диапазоне от 0 до 59.
  • Дробная часть секунды может содержать от нуля до семи цифр в диапазоне от 0 до 9999999.

Значение времени с точностью по умолчанию 100 мс с точностью до долей секунды требует хранения 5 байт.

Обратите внимание, что тип данных TIME не учитывает часовой пояс.

Пример типа данных SQL Server TIME

Следующий оператор создает таблицу с именем sales.visits с двумя столбцами TIME, в которых регистрируется время посещения клиентами определенного магазина:

CREATE TABLE sales.visits(
    visit_id INT PRIMARY KEY IDENTITY,
    customer_name VARCHAR(50) NOT NULL,
    phone VARCHAR(25),
    store_id INT NOT NULL,
    visit_on DATE NOT NULL,
    start_at TIME(0) NOT NULL,
    end_at TIME(0) NOT NULL,
    FOREIGN KEY(store_id) REFERENCES sales.stores(store_id)
);

Следующий оператор INSERT добавляет строку в таблицу sales.visits:

INSERT INTO sales.visits(
    customer_name,
    phone,
    store_id,
    visit_on,
    start_at,
    end_at
)
VALUES
   (
        'John Doe',
        '(408)-993-3853',
        1,
        '2018-06-23',
        '09:10:00',
        '09:30:00'
    );

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

Мирослав С.

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