SQL DATEDIFF 函数

badigar_joe

我正在使用 SSMS 2014 在 SQL 服务器上工作

select DATEDIFF(MM, 0, GETDATE())

输出为 1409(运行于 16-06-2017)

我很困惑,因为 DATEDIFF 语法的第二个和第三个参数应该是一个有效的日期,但在这里,当第二个参数为 0 时,该查询如何以及为什么执行并给出结果。

我检查了 ISDATE(0) 和 ISDATE('0') ,它们给出了语法错误,所以如果 0 不是有效日期,那么为什么 DATEDIFF 接受它并给出结果。

戈登·利诺夫

该文件规定:

开始日期

是可以解析为时间、日期、smalldatetime、datetime、datetime2 或 datetimeoffset 值的表达式。

虽然有细微的区别,但“可以解决”并不等同于“是类型的”。

因此,整数被解释为自“1899-12-31”以来的天数。但是,即使字符串看起来像数字,也不会将其解释为天数。

ISDATE()接受一个字符串参数,因此它正在转换0'0'. 并且'0'不是日期格式。事实上,datediff()将失败,第二个参数传递为 as'0'而不是0

并且(尽管几乎从未使用过),任何整数都将用作第二个参数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server如何计算DATEDIFF函数?

来自分类Dev

SQL Server中的DateDiff函数问题

来自分类Dev

DATEDIFF 函数导致 SQL Server 2016 溢出

来自分类Dev

SQL Server:使用MILLISECOND时,datediff函数导致溢出

来自分类Dev

Visual FoxPro9:datediff的替代方法SQL Server函数?

来自分类Dev

根据时间在SQL Server中更改DATEDIFF函数的结果

来自分类Dev

Oracle中的DATEDIFF函数

来自分类Dev

DATEDIFF结果的汇总函数

来自分类Dev

DateDiff函数错误

来自分类Dev

SQL Datediff与分组依据

来自分类Dev

SQL Server DateDiff

来自分类Dev

SQL DateDiff语法

来自分类Dev

SQL Server:上周的datediff

来自分类Dev

SQL dateadd 和 datediff

来自分类Dev

DATEDIFF SQL Server 2016 JSON

来自分类Dev

SQL Server DateDiff()与MySQL TimestampDiff()

来自分类Dev

SQL-带子查询的DATEDIFF

来自分类Dev

SQL Server:DATEDIFF不准确

来自分类Dev

整个表的SQL Server Datediff

来自分类Dev

SQL-特殊DATEDIFF条件

来自分类Dev

使用DATEDIFF接收SQL错误

来自分类Dev

MySQL 函数替代我访问 datediff

来自分类Dev

oracle中的Dateadd和Datediff函数

来自分类Dev

SQL Server,DATEDIFF错误,日期字段的格式?

来自分类Dev

将SQL转换为DateDiff的Coldfusion

来自分类Dev

Linq to Sql查询,datediff + -3天

来自分类Dev

SQL Server中的DateDiff / Nb问题

来自分类Dev

SQL为每个类别拉最新的datediff

来自分类Dev

将SQL转换为DateDiff的Coldfusion