【问题标题】:How can I change number of days to date? [closed]如何更改迄今为止的天数? [关闭]
【发布时间】:2015-01-09 01:46:18
【问题描述】:

如何在 sql server 2008 中更改迄今为止的天数?

  • 样本天数:730677
  • 输出:2000-07-11

【问题讨论】:

  • "迄今为止的天数"???如果我使用 SELECT DATEADD(day, 730677, 0) 我得到 3900 年,我怀疑这就是你想要的。
  • 你想做什么?
  • @TimSchmelter:我认为他的意思是从 01/01/0000 开始
  • 这个天数是否表示从特定日期算起的天数?例如从今天开始的天数
  • @TimSchmelter:这似乎不对...730677 / 365.25 = 2000.48 ...但是,这并没有完全准确地考虑闰年,但距离不远

标签: sql sql-server sql-server-2008 date


【解决方案1】:

你有问题,

SQL 服务器DateTime2 表示的最早日期是'0001-01-01'

我们可以看到,那是您的“纪元开始”之后的 366 天

SELECT 730677 - DATEDIFF(
        day,
        CAST('0001-01-01' AS DATETIME2),
        CAST('2000-07-11' AS DATETIME2));

要执行您的计算,您可以执行类似的操作

DECLARE @days INT = 730677;

SELECT DATEADD(day, @days - 366, CAST('0001-01-01' AS DATETIME2));

如果您需要表示早于 366 天的天数,则需要另一种选择。

【讨论】:

  • 非常感谢,非常有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-07
  • 2016-04-29
  • 1970-01-01
相关资源
最近更新 更多