2016-06-27 3 views
0

Я пытаюсь выполнить приведенный ниже код, но все же он выбрасывает мне ошибку для этого типа комбинации.Дата данных типа аргумента недействительна для аргумента 1 ошибки функции подстроки для типа данных даты

colud кто-нибудь, дайте мне знать, почему эта ошибка возникает?

BEGIN 
DECLARE @TimeDimensionDate AS DATE 

SET @TimeDimensionDate = '1998-01-01' 
Select CONVERT (DATE,REPLACE (@TimeDimensionDate,SUBSTRING (@TimeDimensionDate,6,2),'01')) 

END 

Благодаря

ответ

1

Вы пытаетесь использовать replace() на сегодняшний день. Это означает, что дата преобразуется в строку, используя локальные настройки. Один метод должен был бы явно преобразовать дату в строку, используя формат такой, как 121.

В качестве альтернативы:

select dateadd(month, 1 - month(@TimeDimensionDate), @TimeDimensionDate) 
Смежные вопросы