You can use the CAST and Convert functions or you might be able to join to a Date table. If you can it's be better to change to a proper datatype rather than doing conversion on the fly.At anyrate, here are some different ways to cast/convert the data type:DECLARE @Foo TABLE (DateNumber FLOAT)INSERT @FooVALUES (20120117), (20120118), (20120119)SELECT CONVERT(DATETIME, CAST(CAST(DateNumber AS INT) AS VARCHAR(8)), 112) FROM @FooSELECT DATEADD(MONTH,((LEFT(CAST(CAST(DateNumber AS INT) AS VARCHAR(8)), 4)-1900)*12)+LEFT(RIGHT(CAST(CAST(DateNumber AS INT) AS VARCHAR(8)),4), 2)-1,RIGHT(CAST(CAST(DateNumber AS INT) AS VARCHAR(8)), 2)-1)FROM @FooSELECT CAST(LEFT(CAST(CAST(DateNumber AS INT) AS VARCHAR(8)), 4) + '-' + LEFT(RIGHT(CAST(CAST(DateNumber AS INT) AS VARCHAR(8)),4), 2) + '-' + RIGHT(CAST(CAST(DateNumber AS INT) AS VARCHAR(8)), 2) AS DATETIME)FROM @Foo