Pregunta

Tengo una tabla con más de 800 registros. En esta tabla que tengo una columna denominada 'Datos' de varchar (10) tipo de datos que contiene las fechas en dd.MM.yyyy format.I quieren convertirlo en smalldatetime.

He intentado convertirlo utilizar Enterprise Management Studio Express, pero yo recibo este error:

The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.

¿Cómo puedo convertir él?

¿Fue útil?

Solución

creo que tendrá que hacer un poco de manipulación de cadenas para conseguir que esto funcione como creo que está a la espera de SQL 'MM.DD.AAAA'. Por lo tanto, actualizar su tabla de flip-flop el mes y el día primero, y luego la conversión debe pasar.

update YourTable
    set Data = SUBSTRING(Data,4,3) + LEFT(Data,3) + RIGHT(Data,4)

Otros consejos

Se puede utilizar:
SELECT ID, CAST(VarcharCol As SmallDateTime) as DateTimeCol From Test1
Esto devolverá una tabla con valores varcharcol como smalldatetime A continuación, actualizar el contenido de varcharcol con los nuevos valores.

Si no desea que la conversión implícita a smalldatetime , se debe utilizar convertir y el argumento estilo .
dd.MM.yyyy formato corresponden a estilo 104 .
Por ejemplo:

SELECT CONVERT(smalldatetime, '31.12.2018', 104) AS "Result"

Result
------
2018-12-31 00:00:00
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top