2011-10-20 62 views
9

我正在使用MS SQL Server 2008, ,并在一个表格中列出idate作为日期,但采用整数格式。 但在查询中,我希望在日期格式。 是否有可能将整数日期转换为适当的日期时间格式?如何在SQL Server 2008中将int转换为日期

+0

当你说你有一个整数格式的日期,你究竟是什么意思 - 格式是什么? – condiosluzverde

+0

戴维是正确的。 'DATEADD(DAY,40835,'1900-01-01')'在我运行的测试中稍快。 –

回答

15

不能将整数值转换直奔约会,但你可以先它再以日期时间日期类型

select cast(40835 as datetime)

,然后转换成日期(SQL 2008)

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

欢呼

+1

只是重读你的问题,如果想作为一个日期时间,然后只是选择投(40835作为日期时间) – davey

3

你必须先将其转换日期时间,然后d吃了。

试试这个,它可能会有所帮助:

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

然后转换为日期。

0

阅读本文可帮助解决类似问题。数据采用十进制数据类型 - [DOB] [decimal](8,0)NOT NULL - 例如 - 19700109.我想在月份得到。解决方案是将SUBSTRING和CONVERT结合到VARCHAR。

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

如果你的整数时间戳以毫秒为单位使用:

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

它将格式化毫秒YYYY-MM-DD字符串。

+0

问题是关于MS SQL Server没有任何函数'strftime'(我相信是一个SQLite函数?) – jpw

相关问题