tsql - data - La conversión falló al convertir la fecha y/o la hora de la serie de caracteres Error
la conversión falló al convertir la fecha y o la hora de la cadena de caracteres sql (5)
Especifique qué formato de fecha está usando:
Select CONVERT(Date, ''13-5-2012'', 105)
105 significa formato de fecha italiano con un siglo (dd-mm-aaaa).
Select CONVERT(Date, ''13-5-2012'')
Cuando ejecuto la instrucción T-SQL anterior en Management Studio, obtengo el siguiente error:
"Error de conversión al convertir la fecha y / o la hora de la cadena de caracteres"
¿Hay algo que pueda convertir ese valor a un tipo de fecha válido con éxito? Tengo esos valores en una columna nvarchar (255) cuyo dataType quiero cambiar al tipo de fecha en una tabla de SQL Server pero he acertado ese error y me gustaría hacer primero una conversión en una declaración de actualización en la tabla.
Prueba esto....
Select CONVERT(Date,''5-13-2012'')
Use el formato ''mm-dd-aaaa''.
En general, sospecho que generalmente hay datos que no se pueden convertir en una columna, y usaría una declaración de caso para verificar que se puede convertir primero:
SELECT CASE WHEN ISDATE(mycolumn)=1 THEN CONVERT(Date, mycolumn, [style]) END
FROM mytable
Creo que Convert
depende de la configuración del formato de fecha de SQL Server. Verifique la configuración de su fecha con las DBCC USEROPTIONS
.
Sospecho que si configuras el dmy
de dmy
para que entienda, entenderá:
SET DATEFORMAT dmy
GO
Si incluso así no funciona, no puede encontrar un estilo que coincida con sus datos, y si sus datos están en un formato constante, se debe a la manipulación manual de cadenas para construirlo (no haga esto si puede ayudar eso).
CONVERT supone que los datos originales pueden representar una fecha. Un elemento de datos incorrecto puede arrojar el mismo error de conversión mencionado aquí sin señalar el problema.
Usar ISDATE me ayudó a evitar los elementos de datos incorrectos.
SELECT CONVERT (DATE, CONVERT (CHAR (8), FieldName)) FROM DBName WHERE ISDATE (FieldName) <> 0
Debe proporcionar el formato de fecha durante la conversión, esto resolverá el error.
seleccione convertir (fecha, ''13 -5-2012 '', 103)