ERRO Arithmetic overflow error converting expression to data type datetime.
Boa tarde estou com seguinte erro quando tento usar operadores de diferença de datas,
Arithmetic overflow error converting expression to data type datetime.
quando realizo esse update UPDATE TB_ORDEM_DE_SERVIÇO
SET [DATA_DIF_PRI_PREV_INICIAL_X_PRI_PREV_FINAL] = DATEPART(WEEKDAY,DATEDIFF(DAY,[PRIMEIRA PREV INICIAL AMERICANA],[PRIMEIRA PREV FINAL AMERICANA]))
o erro aparece, o esquisito é que nesse update que é praticamente mesma coisa só muda a ordem das datas que busco a diferença ele executa,
UPDATE TB_ORDEM_DE_SERVIÇO
SET [DATA_DIF_PRI_PREV_FINAL_X_PRI_PREV_INICIAL] = DATEPART(WEEKDAY,DATEDIFF(DAY,[PRIMEIRA PREV FINAL AMERICANA],[PRIMEIRA PREV INICIAL AMERICANA]))
Alguem sabe o porque ?
Att
Arithmetic overflow error converting expression to data type datetime.
quando realizo esse update UPDATE TB_ORDEM_DE_SERVIÇO
SET [DATA_DIF_PRI_PREV_INICIAL_X_PRI_PREV_FINAL] = DATEPART(WEEKDAY,DATEDIFF(DAY,[PRIMEIRA PREV INICIAL AMERICANA],[PRIMEIRA PREV FINAL AMERICANA]))
o erro aparece, o esquisito é que nesse update que é praticamente mesma coisa só muda a ordem das datas que busco a diferença ele executa,
UPDATE TB_ORDEM_DE_SERVIÇO
SET [DATA_DIF_PRI_PREV_FINAL_X_PRI_PREV_INICIAL] = DATEPART(WEEKDAY,DATEDIFF(DAY,[PRIMEIRA PREV FINAL AMERICANA],[PRIMEIRA PREV INICIAL AMERICANA]))
Alguem sabe o porque ?
Att
Caique Eloy
Curtidas 0
Melhor post
Emerson Nascimento
27/11/2019
Esta instrução está correta?
substituindo:
WEEKDAY retorna um valor entre 1 e 7, representando os dias da semana (Seg, Ter, etc).
Acho que não faz sentido pegar o dia da semana de -3.
O dia da semana deveria ser obtido de uma data.
Talvez o correto seja somente:
UPDATE TB_ORDEM_DE_SERVIÇO SET [DATA_DIF_PRI_PREV_FINAL_X_PRI_PREV_INICIAL] = DATEPART(WEEKDAY,DATEDIFF(DAY,[PRIMEIRA PREV FINAL AMERICANA],[PRIMEIRA PREV INICIAL AMERICANA]))
substituindo:
[DATA_DIF_PRI_PREV_FINAL_X_PRI_PREV_INICIAL] = DATEPART(WEEKDAY,DATEDIFF(DAY,'25/11/2019','22/11/2019')) [DATA_DIF_PRI_PREV_FINAL_X_PRI_PREV_INICIAL] = DATEPART(WEEKDAY, -3) -- VALOR NEGATIVO [DATA_DIF_PRI_PREV_FINAL_X_PRI_PREV_INICIAL] = 6
WEEKDAY retorna um valor entre 1 e 7, representando os dias da semana (Seg, Ter, etc).
Acho que não faz sentido pegar o dia da semana de -3.
O dia da semana deveria ser obtido de uma data.
Talvez o correto seja somente:
UPDATE TB_ORDEM_DE_SERVIÇO SET [DATA_DIF_PRI_PREV_FINAL_X_PRI_PREV_INICIAL] = DATEDIFF(DAY,[PRIMEIRA PREV FINAL AMERICANA],[PRIMEIRA PREV INICIAL AMERICANA])
GOSTEI 1