【发布时间】:2015-02-25 22:03:10
【问题描述】:
我提前道歉,因为我确信这个问题之前已经被问过,但我不知道我正在处理的日期类型的名称。
如何在 SQL Server 中将这种 5 位数形式的日期(例如 41867)转换为常规的 yyyy-dd-mm?
【问题讨论】:
-
那么这个数字 41867 是如何转换成日期的呢?
-
这些纪元日期来自 linux 吗? 41867 应该是什么日期??
-
这看起来像 Excel 序列日期 - 自 1900 年 1 月 1 日以来的天数。还有另一种格式,即 2 位数年份后跟 3 位数日期编号(例如,99001 是 1999 年 1 月 1 日),但 OP 的示例不适用于该格式
-
“41687”是来自 Excel 并代表日期“2014-08-16”吗?然后
SELECT DATEADD(DAY, 41867, '18991230')应该做你想做的事。可能会转换为DATE。 -
根据下面的@benjaminmoskovits,如果起点是 1900-01-01,那么该日期也可能是“2014-08-18”。我只是在 Excel 中输入“41867”并将其显示为日期;结果是“2014-08-16”。这并不完全科学。这就是为什么您需要知道该值来自何处以及它代表什么。
标签: sql sql-server