【问题标题】:Understanding of DATEDIFF() function in SQL serverSQL server中DATEDIFF()函数的理解
【发布时间】:2017-04-21 07:13:02
【问题描述】:
select DATEDIFF(m,0,GETDATE()) as date

当我执行查询时,我得到的答案是 1407,但我无法得到答案的格式,谁能解释一下

【问题讨论】:

  • 我假设这是 SQL Server?但我不应该假设。请edit 并为您的数据库产品添加适当的标签。日期时间函数因产品而异。
  • 这里的 0 表示年份 '1900-01-01' SELECT DATEDIFF(M,'1900-01-01','2017-04-21') AS DATE
  • 作为参考,当我要求您编辑并添加适当的标签时,a_horse_with_no_names 编辑正是我所要求的。当我们谈论标签时,我们意思是标签。不是头衔。请参阅Should questions include "tags" in their titles 了解更多信息

标签: sql-server tsql datediff


【解决方案1】:

DATEDIFF 采用三个参数 - datepart 描述您希望结果采用的单位和两个日期。

在您的情况下,您将 0 的值作为第二个参数传递,它被隐式转换为 datetime 1900-01-01T00:00:00.000

目前从 1900 年 1 月 1 日到今天有 1407 个月。

【讨论】:

  • 感谢您的解释。
【解决方案2】:

您使用第一个参数设置格式,在您的情况下为月份

此处列出了可能的值: https://www.w3schools.com/sql/func_datediff.asp

并且如 w3 上的示例所示,您还可以使用格式的名称,即 选择 DATEDIFF(month,0,GETDATE()) 作为日期

【讨论】:

  • 请问为什么投反对票???提问者明确要求格式,解释格式...
【解决方案3】:

你的输出是 1407。所以从 1900 年到 2017 年,我们总共有 1407 个月。因为你使用参数作为 m

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多