理解DATEDIFF()的SQL服务器功能

理解DATEDIFF()的SQL服务器功能

问题描述:

select DATEDIFF(m,0,GETDATE()) as date 

当我执行我的答案是1407查询,但我不能在这种格式的答案是得到的,任何人都可以explian理解DATEDIFF()的SQL服务器功能

+1

我假设这是SQL Server?但我不应该假设。请[编辑]并为您的数据库产品添加适当的标签。日期时间功能因产品而异。 –

+0

此处0表示年份'1900-01-01'SELECT DATEDIFF(M,'1900-01-01','2017-04-21')AS DATE – 2017-04-21 07:33:45

+0

作为参考,当我要求您编辑并添加适当的标签,'a_horse_with_no_name's编辑是我所要求的。当我们谈论标签时,我们*表示*标签。不是标题。请参阅[应该问题在其标题中包含“标签”](https://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles)以获取更多信息 –

您设置的格式与第一个参数,你的情况几个月

可能值列在这里: https://www.w3schools.com/sql/func_datediff.asp

而且如图所示的例子在W3上,您还可以使用格式的名称,即 选择DATEDIFF(月, 0 ,GETDATE())作为日期

+0

请问为什么downvote ??? Asker明确要求格式,解释格式... – devsteff

DATEDIFF需要三个参数 - datepart,它描述了您想要的结果以及两个日期的单位。

就你而言,你传递的值为0作为第二个参数,它被隐式转换为datetime1900-01-01T00:00:00.000

从1900年1月1日到今天,共有1407个月。

+0

感谢您的解释。 – Sai

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