ERRO Arithmetic overflow error converting expression to data type datetime.
27/11/2019
0
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
Curtir tópico
+ 0
Responder
Post mais votado
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])
Emerson Nascimento
Responder
Clique aqui para fazer login e interagir na Comunidade :)