2015-02-01 4 views
0

мне нужно получить 03-01 в результате @startmonth, но я получаюSql Server 2008: Конверсия удалось при преобразовании даты и/или времени из символьной строки

Конверсия удалось при преобразовании даты и/или времени от характера строка.

DECLARE @startmonth date, @newdate date 

SELECT @newdate = DATEADD(DAY, 1, CONVERT(DATE, '2012-02-29')) 
SELECT @startmonth = CONVERT(DATE,RIGHT(RTRIM(CONVERT(DATE,@newdate)),5)) 

print @startmonth 

ответ

0

Если вы хотите сохранить результат как 03-01 то переменная не может быть date типа. Измените тип данных @startmonth на varchar

Также в вашем запросе имеется несколько нежелательных кодов. Попробуй это.

DECLARE @startmonth VARCHAR(6),@newdate DATE 

SELECT @newdate = Dateadd(DAY, 1,'2012-02-29') 

SELECT @startmonth = LEFT(CONVERT(VARCHAR(15), @newdate, 110), 5) 

Print @startmonth 
Смежные вопросы