Principales respuestas
Error al insertar una fecha con formato dd/mm/yyyy h:m:s

Pregunta
-
Cordial saludo.
En la actualidad estoy tratando de insertar estos datos en mi tabla:
INSERT INTO
GpsWSrecogerContadoresCanFlnet(Matricula,Fecha,Combustible,Distancia,NivelCombustible,Latitud,Longitud,VelocidadCAN,HorasMotor,Combustible2,NivelCombustible2,
FechaRegistro) VALUES ('VD-372','29/12/2021 6:10:38',148965.0,386851.219,52.0,7.02794,-74.6974,21,17942,148965.0,52.0,GETDATE())y me sale este error:
Msg 242, Level 16, State 3, Line 1
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
Lo que puedo notar, es que la fecha que estoy ingresando, la esta tomando como un varchar, asi que como dicha fecha la estoy tomando de otra parte, creo que la opcion es convertir dicha fecha.
Agradezco me indiquen la forma correcta de convertir esta fecha para que SQL SERVER la reciba.
Germanq
Respuestas
-
Hola German David Quinchia Zapata:
Existen dos caminos para hacer esto. Quizá me he quedado corto, pero al menos dos simples.
Primero, y mejor camino para no tener problemas con las fechas nunca más.
Utilizar el formato YYYYMMDD
Create table GpsWSrecogerContadoresCanFlnet(Matricula varchar(100), Fecha datetime); GO
Para insertar:
INSERT INTO GpsWSrecogerContadoresCanFlnet(Matricula , Fecha ) VALUES ( 'VD-372', '20211229 06:10:38');
El asunto es que en función de tú login se establece un idioma por defecto, y conlleva el lenguaje a aplicar.
Otra opción:
SET DATEFORMAT dmy INSERT INTO GpsWSrecogerContadoresCanFlnet(Matricula , Fecha ) VALUES ( 'VD-372', '29/12/2021 6:10:38');
https://stackoverflow.com/questions/12957635/sql-query-to-insert-datetime-in-sql-server
https://docs.microsoft.com/es-es/sql/t-sql/statements/set-dateformat-transact-sql?view=sql-server-ver15
- Propuesto como respuesta Alberto PoblacionMVP miércoles, 29 de diciembre de 2021 15:02
- Marcado como respuesta German David Quinchia Zapata miércoles, 12 de enero de 2022 11:48
Todas las respuestas
-
Hola German David Quinchia Zapata:
Existen dos caminos para hacer esto. Quizá me he quedado corto, pero al menos dos simples.
Primero, y mejor camino para no tener problemas con las fechas nunca más.
Utilizar el formato YYYYMMDD
Create table GpsWSrecogerContadoresCanFlnet(Matricula varchar(100), Fecha datetime); GO
Para insertar:
INSERT INTO GpsWSrecogerContadoresCanFlnet(Matricula , Fecha ) VALUES ( 'VD-372', '20211229 06:10:38');
El asunto es que en función de tú login se establece un idioma por defecto, y conlleva el lenguaje a aplicar.
Otra opción:
SET DATEFORMAT dmy INSERT INTO GpsWSrecogerContadoresCanFlnet(Matricula , Fecha ) VALUES ( 'VD-372', '29/12/2021 6:10:38');
https://stackoverflow.com/questions/12957635/sql-query-to-insert-datetime-in-sql-server
https://docs.microsoft.com/es-es/sql/t-sql/statements/set-dateformat-transact-sql?view=sql-server-ver15
- Propuesto como respuesta Alberto PoblacionMVP miércoles, 29 de diciembre de 2021 15:02
- Marcado como respuesta German David Quinchia Zapata miércoles, 12 de enero de 2022 11:48
-
Cordial saludo Javi.
Me quedo con la segunda forma, ya que la fecha la recibo desde un webservice y por ello debo convertirla
SET DATEFORMAT dmy INSERT INTO GpsWSrecogerContadoresCanFlnet(Matricula , Fecha ) VALUES ( 'VD-372', '29/12/2021 6:10:38');
Muchas gracias.
Germanq