loading..
Русский    English
21:47
листать

Функция DATEFROMPARTS

Функция DATEFROMPARTS появилась в  Cистема управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft.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 DATEADD 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 Больше тэгов
Учебник обновлялся
несколько дней назад
©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.
Rambler's Top100