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

Откуда:
Сообщений: 186
Добрый день!

У меня есть вот такие переменные и их значения(см.ниже).
Я объявляю две даты @Dat1 и @Dat2 и значение их у меня постоянно меняется.
А вот переменная @NachaloGoda и @God по идее как-то может можно вытащить из значения переменной @Dat1, например? Ведь начало года и год это с точки зрения математики-вычисляемые поля.

declare @Dat1 nvarchar(12), @Dat2 nvarchar(12), @NachaloGoda Date, @God varchar(2)

SET @Dat1='01/02/2014'
SET @Dat2='30/04/2014'
SET @God = '14'
SET @NachaloGoda='01/01/'+@God
1 авг 14, 14:24    [16387436]     Ответить | Цитировать Сообщить модератору
 Re: Переменные с датой  [new]
Crimean
Member

Откуда:
Сообщений: 13148
откройте для себя date and time functions
datepart( year, ...
year( ...
и т.д.

ну и конструкции типа
dateadd( day, 1-datepart( day, ...
dateadd( month, 1-datepart( month, ...
1 авг 14, 14:31    [16387482]     Ответить | Цитировать Сообщить модератору
 Re: Переменные с датой  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1528
LisSp
Добрый день!

У меня есть вот такие переменные и их значения(см.ниже).
Я объявляю две даты @Dat1 и @Dat2 и значение их у меня постоянно меняется.
А вот переменная @NachaloGoda и @God по идее как-то может можно вытащить из значения переменной @Dat1, например? Ведь начало года и год это с точки зрения математики-вычисляемые поля.

declare @Dat1 nvarchar(12), @Dat2 nvarchar(12), @NachaloGoda Date, @God varchar(2)

SET @Dat1='01/02/2014'
SET @Dat2='30/04/2014'
SET @God = '14'
SET @NachaloGoda='01/01/'+@God
И вот откуда такая неубиваемая страсть работать с датой только как со строкой символов? При чем всегда в полной уверенности, что дата может быть представлено только в единственно любимом виде? Про типы datetime, date что-нить слышали?
1 авг 14, 14:32    [16387491]     Ответить | Цитировать Сообщить модератору
 Re: Переменные с датой  [new]
LisSp
Member

Откуда:
Сообщений: 186
Sergey Sizov
LisSp
Добрый день!

У меня есть вот такие переменные и их значения(см.ниже).
Я объявляю две даты @Dat1 и @Dat2 и значение их у меня постоянно меняется.
А вот переменная @NachaloGoda и @God по идее как-то может можно вытащить из значения переменной @Dat1, например? Ведь начало года и год это с точки зрения математики-вычисляемые поля.

declare @Dat1 nvarchar(12), @Dat2 nvarchar(12), @NachaloGoda Date, @God varchar(2)

SET @Dat1='01/02/2014'
SET @Dat2='30/04/2014'
SET @God = '14'
SET @NachaloGoda='01/01/'+@God
И вот откуда такая неубиваемая страсть работать с датой только как со строкой символов? При чем всегда в полной уверенности, что дата может быть представлено только в единственно любимом виде? Про типы datetime, date что-нить слышали?


изначально тип переменной и был Date... Но он не подошёл далее по коду..
1 авг 14, 14:36    [16387512]     Ответить | Цитировать Сообщить модератору
 Re: Переменные с датой  [new]
LisSp
Member

Откуда:
Сообщений: 186
Crimean
откройте для себя date and time functions
datepart( year, ...
year( ...
и т.д.

ну и конструкции типа
dateadd( day, 1-datepart( day, ...
dateadd( month, 1-datepart( month, ...


судя по описанию на msdn - datepart то, что нужно... Спасибо! Попробую..
1 авг 14, 14:38    [16387527]     Ответить | Цитировать Сообщить модератору
 Re: Переменные с датой  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1528
LisSp
Crimean
откройте для себя date and time functions
datepart( year, ...
year( ...
и т.д.

ну и конструкции типа
dateadd( day, 1-datepart( day, ...
dateadd( month, 1-datepart( month, ...


судя по описанию на msdn - datepart то, что нужно... Спасибо! Попробую..
Так он же работает с типом date, который не подходит дальше по коду?
1 авг 14, 14:45    [16387568]     Ответить | Цитировать Сообщить модератору
 Re: Переменные с датой  [new]
mrGuest
Guest
А еще есть функции year, month, date, можете их попробовать, если их прямолинейность не смущает:
select	year(getdate()), month(getdate()), day(getdate())
1 авг 14, 14:45    [16387572]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить