Составление дат из частей

Анализ временных рядов в SQL Server

Maham Faisal Khan

Senior Data Science Content Developer

Даты из частей

DATEFROMPARTS(year, month, day)

TIMEFROMPARTS(hour, minute, second, fraction, precision)

DATEFROMPARTS(year, month, day, hour, minute, second, ms)

DATETIME2FROMPARTS(year, month, day, hour, minute, second, fraction, precision)

SMALLDATETIMEFROMPARTS(year, month, day, hour, minute)

DATETIMEOFFSETFROMPARTS(year, month, day, hour, minute, second, fraction, hour_offset, minute_offset, precision)

Анализ временных рядов в SQL Server

Дата и время вместе

SELECT
    DATETIMEFROMPARTS(1918, 11, 11, 05, 45, 17, 995) AS DT,
    DATETIME2FROMPARTS(1918, 11, 11, 05, 45, 17, 0, 0) AS DT20,
    DATETIME2FROMPARTS(1918, 11, 11, 05, 45, 17, 995, 3) AS DT23,
    DATETIME2FROMPARTS(1918, 11, 11, 05, 45, 17, 9951234, 7) AS DT27;
DT DT20 DT23 DT27
1918-11-11 05:45:17.997 1918-11-11 05:45:17 1918-11-11 05:45:17.995 1918-11-11 05:45:17.9951234
Анализ временных рядов в SQL Server

Работа со смещениями

SELECT
    DATETIMEOFFSETFROMPARTS(2009, 08, 14, 21, 
        00, 00, 0, 5, 30, 0) AS IST,
    DATETIMEOFFSETFROMPARTS(2009, 08, 14, 21,
        00, 00, 0, 5, 30, 0)
        AT TIME ZONE 'UTC' AS UTC;
IST UTC
2009-08-14 21:00:00 +05:30 2009-08-14 15:30:00 +00:00
Анализ временных рядов в SQL Server

Подводные камни при работе с частями

DATEFROMPARTS(1999, 12, NULL)

DATEFROMPARTS(10000, 01, 01)

DATETIME2FROMPARTS(1918, 11, 11, 05, 45, 17, 995, 0)

 

NULL

Невозможно создать тип данных date: некоторые аргументы содержат недопустимые значения.

Невозможно создать тип данных datetime2: некоторые аргументы содержат недопустимые значения.

Анализ временных рядов в SQL Server

Давайте потренируемся!

Анализ временных рядов в SQL Server

Preparing Video For Download...