gpt4 book ai didi

sql-server - SQL 与 Excel 中整数到日期的转换问题

转载 作者:行者123 更新时间:2023-12-04 19:53:17 25 4
gpt4 key购买 nike

我的整数日期值为 43251,而在 MS Excel 中转换它显示 31-05-2018。使用以下 sql 进行转换时

select convert(datetime,convert(int, 43251))

它显示 02-06-2018。为什么与 Microsoft 的转化率存在差异?

最佳答案

SQL Server 使用不同的日期格式。

我认为正确的转换是:

select dateadd(day, 43251, '1899-12-30')

这令人困惑。 Excel 将 0 视为 1900-00-00,这意味着 0 是 1899-12-31,1 是 1900-01-01。这应该表明转换是:

select dateadd(day, 43251, '1899-12-31')

但是,这不会产生正确的日期。为什么不? Excel 的闰年算法不正确。因此,它将第 60 天视为 1900-02-29。但是,1900 年不是闰年,所以“60”应该是 1900-03-01。

闰年的规则是:

  • 可被 4 整除的年份
  • 除了能被 100 整除的年份
  • 除了能被 400 整除的年份

因此,2000 年是闰年,但 1900 年和 2100 年不是。

换句话说,只有 1900-03-01 之后的日期才是正确的。

关于sql-server - SQL 与 Excel 中整数到日期的转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51557334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com