2012-07-27 172 views
0

我的问题是与存储在两个单独的列整数日期和时间的表格转换成两个独立的整数日期时间。我知道这是sql server如何在内部存储日期 - 在1900-01-01之后的第一个4字节int和午夜之后的第二个4字节int,但我的值与此不一致。在SQL Server 2008

直接的例子 - 日期:77262,时间:3767327。

时间值转换为日期时间(二进制(4)转换后) - 1900-01-01 03:29:17.757但日期甚至没有接近它应该是什么,我相信它必须是某地在2012年7月。我可能错过了一些基本的东西,但我真的找不到任何解决方案。

+0

'DATEADD(天,77262, '1900-01-01')'='2111-07 -16',所以第一个int不可能是自1900年以来的天数 – Andomar 2012-07-27 12:31:24

+0

是否有解释日期部分的另一种方式,或者可能是不同的开始日期,必须有两个整数之间的组合,这将产生日期时间2012年7月 – user1458381 2012-07-27 12:43:29

+0

查看插入代码吗? – Andomar 2012-07-27 12:44:32

回答

0

的整数值不能被直接转换成日期。 您必须转换到像日期时间 - >

select cast(41535 as datetime) 

然后到日期类型 - >

select cast(cast(41535 as datetime) as date)