loading..
Русский    English
13:52
листать

Функция DATEFROMPARTS

Функция DATEFROMPARTS появилась в SQL Server версии 2012.

У функции DATEFROMPARTS 3 целочисленных аргумента, представляющих собой год, месяц и день, а возвращаемое значение есть соответствующая дата типа DATE. Она даёт удобный способ формирования даты, когда её компоненты хранятся отдельно или передаются с клиента.

Например,

  1. SELECT DATEFROMPARTS(2017, 5, 25);

вернёт

2017-05-25

Получить дату 25 числа текущего месяца можно так

  1. SELECT DATEFROMPARTS(YEAR(CURRENT_TIMESTAMP), MONTH(CURRENT_TIMESTAMP), 25);

Помимо даты можно "собирать" значения типа времени и временной метки (datetime), используя компоненты времени - часы, минуты, секунды и доли секунды. Например, следующий запрос

  1. SELECT TIMEFROMPARTS(9, 38, 59, 998, 7);
даст значение типа TIME:

09:38:59.0000998

Обратите внимание на последний параметр, который указывает на число знаков в представлении долей секунды. Этот целочисленный параметр может принимать значение от 0 до 7, но не может быть меньше числа цифр в представлении долей секунды.

Например,

  1. SELECT TIMEFROMPARTS(9, 38, 59, 998, 3);
вернет

09:38:59.998
в то время как

  1. SELECT TIMEFROMPARTS(9, 38, 59, 998, 2);
вернет ошибку:

Cannot construct data type time, some of the arguments have values which are not valid.

(Не удалось сконструировать тип данных time. Некоторые аргументы имеют недопустимые значения.)

Сравните с

  1. SELECT TIMEFROMPARTS(9, 38, 59, 098, 2), TIMEFROMPARTS(9, 38, 59, 098, 3);

Результат

09:38:59.98   09:38:59.098

Функция DATETIMEFROMPARTS формирует значение типа DATETIME. Она имет семь целочисленных параметров: год, месяц, день, часы, минуты, секунды, миллисекунды. При этом миллисекунды округляются с точностью до одного из значений:  .000, .003, .007.

  1. SELECT DATETIMEFROMPARTS(2017, 5, 13, 9, 38, 59, 998),
  2. DATETIMEFROMPARTS(2017, 5, 13, 9, 38, 59, 999),
  3. DATETIMEFROMPARTS(2017, 5, 13, 9, 38, 59, 993);

Результат

2017-05-13 09:38:59.997    2017-05-13 09:39:00.000    2017-05-13 09:38:59.993


Bookmark and Share
Тэги:
ALL AND AUTO_INCREMENT AVG battles CASE CAST CHAR CHARINDEX CHECK classes COALESCE Convert COUNT CROSS APPLY CTE DATEDIFF DATENAME DATEPART DATETIME DDL DEFAULT DELETE DISTINCT DML EXCEPT EXISTS EXTRACT FROM FULL JOIN GROUP BY Guadalcanal HAVING IDENTITY IN INNER JOIN insert INTERSECT IS NOT NULL ISNULL laptop LEFT LEFT OUTER JOIN LEN maker MAX MIN MONTH MySQL NOT Больше тэгов
Учебник обновлялся
месяц назад
©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.
Rambler's Top100