我有一个包含DateField(DataType:Float)
的表41477.637634537, 41477.6376233333, 41477.637631794
我需要在日期时间YY:MM:DD HH:MM:SS格式
我尝试了ALTER功能
ALTER TABLE HISTORY
ALTER COLUMN DATETIMESTAMP DATETIME
但是,它返回的那一天是提前一天,虽然时间是正确的。
我想使用
Select * from History
where Tag LIKE '%tagname%' AND DateTimeStamp > '2013/7/24 14:23:00'
请在我的Alter声明中建议是否有些错误 - 或者是否有更好的方法可以做到这一点?
答案 0 :(得分:2)
看起来您正在使用Excel日期。这些都是从“1900年1月0日”(又名1899-12-31)开始计算的。
您可以通过将值添加到该日期来转换它们:
select cast('1899-12-31' as datetime) + 41477.637634537;
我不知道为什么内置转换会被忽略。
编辑:
在SQL Server 2008上,以下内容返回三个日期和时间:
with t as (
select 41477.637634537 as col union all
select 41477.6376233333 union all
select 41477.637631794
)
select cast('1899-12-31' as datetime) + col
from t;