2017-02-01 14 views
0

Я использую этот запрос:Конверсия удалось при преобразовании даты с DATEADD

INSERT INTO Registro_EQ (Codigo, Fechtran, Fechaini, Fechaexp, IDCONF, Descripcion, Marca, Modelo, Serie, ConLista, Porcentaje_cl, SinLista, Porcentaje_sl, Movible, 
      Porcentaje_mv, Edificio, Porcentaje_ed, Automatico, Exceso, Porcentaje_ex, Asignacion, Estatus, IDUsuario) 
SELECT DATEADD(year, 1, Fechaini) as Fecha, DATEADD(year, 1, Fechaexp) as Fecha2, 
     [Codigo] , [Fechtran], [IDCONF], [Descripcion], [Marca], [Modelo], [Serie], [ConLista], [Porcentaje_cl], [SinLista], [Porcentaje_sl], [Movible], 
     [Porcentaje_mv], [Edificio], [Porcentaje_ed], [Automatico], [Exceso], [Porcentaje_ex], [Asignacion], [Estatus], [IDUsuario] 
    FROM [Pru].[dbo].[Registro_EQ] 
    WHERE Fechaini >= '2016-01-01' AND Fechaini < '2017-01-01' 

Когда я бегу отправить мне следующее сообщение:

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

Я знаю, что по дате, но я не мог найти ответ.

+0

Вам необходимо определить типы данных всех полей, которые, по вашему мнению, являются датами. Например, какой тип данных «Fechaini» –

ответ

0

При заказе на Вставить в это Codigo, Fechtran, Fechaini, Fechaexp, IDCONF и в Выбрать порядок отличается, Fecha, Fecha2, Codigo, Fechtran, IDCONF.

Таким образом, вы, скорее всего, вставляете данные в неправильные столбцы.

+0

Надеюсь, это было то, что вы пытались сказать. Это было так непонятно, поэтому я переписал некоторые из них. –

0

Наиболее вероятной причиной вашей проблемы является то, что Fechaini хранится как строка символов, а не дата. Это неправильный тип данных. Вы должны использовать соответствующие встроенные типы данных, если у вас нет веских оснований для этого.

В SQL Server 2012+, вы можете увидеть значения, которые вызывают проблемы:

select Fechaini 
from [Pru].[dbo].[Registro_EQ] 
where try_convert(date, Fechaini) is null; 

Затем вы должны исправить свои данные. Лучше всего было бы изменить данные на правильный тип (тип даты или даты и времени).

0

первого выполнения запроса на выборку без вставки, если ошибка исчезнет, ​​то вы вставляете неверную дату в формате из избранных в целевой таблице

второй, если вы получили сообщение об ошибке с запросом на выборку, вы должны убедиться, формат поля «fechaini» - это дата, если он не гарантирует, что все данные содержатся в формате даты и не должны содержать пустую строку.