Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Сформировать дату из 3-х переменных типа INT  [new]
Ural2
Member

Откуда:
Сообщений: 58
Не могу получить дату из 3-х полей INT. Совсем запуталась в DateDiff и DateAdd. Помогите, люди добрые :)

DECLARE @yy int, @mm int, @dd int, @dt datetime
SET @yy=1960
SET @mm=12
SET @dd=31
SELECT @dt=???
31 окт 11, 18:22    [11528770]     Ответить | Цитировать Сообщить модератору
 Re: Сформировать дату из 3-х переменных типа INT  [new]
grigrim
Member

Откуда: Москва
Сообщений: 89
Ural2,

select CONVERT(datetime, CAST(@yy as varchar)
			+ CASE WHEN @mm<10 THEN '0' ELSE '' END
			+ CAST(@mm as varchar)
			+ CASE WHEN @dd<10 THEN '0' ELSE '' END
			+ CAST(@dd as varchar), 112)
31 окт 11, 18:29    [11528797]     Ответить | Цитировать Сообщить модератору
 Re: Сформировать дату из 3-х переменных типа INT  [new]
grigrim
Member

Откуда: Москва
Сообщений: 89
А в SQL Server Denali можно будет так:
SELECT DATEFROMPARTS ( @yy, @mm, @dd )
31 окт 11, 18:31    [11528804]     Ответить | Цитировать Сообщить модератору
 Re: Сформировать дату из 3-х переменных типа INT  [new]
Ural2
Member

Откуда:
Сообщений: 58
Спасибо!
31 окт 11, 18:31    [11528806]     Ответить | Цитировать Сообщить модератору
 Re: Сформировать дату из 3-х переменных типа INT  [new]
Ural2
Member

Откуда:
Сообщений: 58
DATEFROMPARTS - это функция для какой версии SQL?
31 окт 11, 18:32    [11528813]     Ответить | Цитировать Сообщить модератору
 Re: Сформировать дату из 3-х переменных типа INT  [new]
grigrim
Member

Откуда: Москва
Сообщений: 89
Ural2,

SQL Server Denali, которая ещё окончательно не вышла.
31 окт 11, 18:34    [11528818]     Ответить | Цитировать Сообщить модератору
 Re: Сформировать дату из 3-х переменных типа INT  [new]
aleks2
Guest
DECLARE @yy int, @mm int, @dd int, @dt datetime
SET @yy=1960
SET @mm=12
SET @dd=31
SELECT DATEADD(day, @dd-1, DATEADD(month, @mm-1, DATEADD(year,@yy-1900, 0)))
31 окт 11, 19:07    [11528960]     Ответить | Цитировать Сообщить модератору
 Re: Сформировать дату из 3-х переменных типа INT  [new]
grigrim
Member

Откуда: Москва
Сообщений: 89
aleks2,

да, так получше будет.
31 окт 11, 19:48    [11529152]     Ответить | Цитировать Сообщить модератору
 Re: Сформировать дату из 3-х переменных типа INT  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
DECLARE @yy int, @mm int, @dd int, @dt datetime;
SET @yy=1960;
SET @mm=12;
SET @dd=31;

SET @dt=STR(10000*@yy+100*@mm+@dd);
31 окт 11, 20:23    [11529303]     Ответить | Цитировать Сообщить модератору
 Re: Сформировать дату из 3-х переменных типа INT  [new]
iljy
Member

Откуда:
Сообщений: 8711
grigrim,

DECLARE @yy int, @mm int, @dd int, @dt datetime
SET @yy=1960
SET @mm=12
SET @dd=31
SELECT DATEADD(day, @dd-1, DATEADD(month, @mm-1 + (@yy-1900) * 12, 0))
1 ноя 11, 00:53    [11530096]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить