2011-10-20 31 views
9

Estoy usando MS SQL Server 2008, y en una tabla tengo la fecha de ida y vuelta de la columna pero en formato entero. Pero en la consulta quiero eso en el formato de fecha. ¿Es posible convertir una fecha entera en el formato de fecha y hora correcto?Cómo convertir int a la fecha en SQL Server 2008

+0

Cuando dices que tienes una fecha en formato entero, ¿a qué te refieres exactamente? ¿Cuál es el formato? – condiosluzverde

+0

davey es correcto. 'DATEADD (DAY, 40835, '1900-01-01')' es ligeramente más rápido en las pruebas que he ejecutado. –

Respuesta

15

No se puede convertir un valor entero directamente a una fecha, pero por primera vez puede que a una fecha y hora y luego a un tipo de fecha

select cast(40835 as datetime)

y luego convertir a una fecha (SQL 2008)

select cast(cast(40835 as datetime) as date)

aplausos

+1

acaba de volver a leer su pregunta, si desea como fecha, entonces simplemente seleccione emitir (40835 como fecha y hora) – davey

1

Lo más probable es que desee examinar la documentación para REPARTO de T-SQL y CONVERT funciones, que se encuentra en la documentación aquí: http://msdn.microsoft.com/en-US/library/ms187928(v=SQL.90).aspx

A continuación, utilizar una de esas funciones en la consulta T-SQL para convertir la columna [idate] de la base de datos en el formato de fecha y hora de su preferencia en la salida.

3

tienes que convertir primero en fecha y hora, luego a d comió

probar esto, podría ser útil:

Select Convert(DATETIME, LEFT(20130101, 8)) 

luego convertir hasta la fecha.

0

La lectura de esto ayuda a resolver un problema similar. Los datos están en tipo de datos decimales - [DOB] [decimal] (8, 0) NOT NULL - por ej. - 19700109. Quiero obtener el mes. La solución es combinar SUBSTRING con CONVERT a VARCHAR.

SELECT [NUM] 
     ,SUBSTRING(CONVERT(VARCHAR, DOB),5,2) AS mob 
    FROM [Dbname].[dbo].[Tablename] 
0

Si el entero es marca de tiempo en milisegundos usar:

SELECT strftime("%Y-%d-%m", col_name, 'unixepoch') AS col_name 

Se dará formato milisegundos a cadena aaaa-mm-dd.

+0

La pregunta es sobre MS SQL Server que no tiene ninguna función 'strftime' (que creo que es una función SQLite?) – jpw

Cuestiones relacionadas