非常抱歉,因为我相信这个问题以前已经被问过了,但是我不知道我正在使用的日期类型的名称。
在SQL Server中如何将一个5位数字形式的日期(例如41867)转换成常规的yyyy-dd-mm格式?
非常抱歉,因为我相信这个问题以前已经被问过了,但是我不知道我正在使用的日期类型的名称。
在SQL Server中如何将一个5位数字形式的日期(例如41867)转换成常规的yyyy-dd-mm格式?
SQL Server将日期存储为自1900年1月1日以来的天数,小数部分表示一天的一部分。
declare @d1 datetime
set @d1 = 41867
select @d1
select CONVERT(varchar(20),@d1,120)
如果您想在一条语句中完成该操作:
select CONVERT(varchar(25),cast(41867 as datetime),120)
这个5位数字格式被称为msdate,它从1900年1月1日开始计算。将其转换为标准日期最简单的方法是:
select convert(datetime, 44321) - 2
SELECT DATEADD(DAY, 41867, '18991230')
应该可以实现您的需求。可能需要进行一些转换为DATE
的操作。 - Jeroen Mostert