【发布时间】:2016-11-10 21:51:41
【问题描述】:
为什么 DATEDIFF 接受 yyyymmdd 格式?不是只有yyyy-mm-dd格式吗?
当日期为 yyyymmdd 格式时,函数 DATEDIFF(datepart, start_date, end_date) 工作正常,例如
DATEDIFF(DAY, 20161201, 20161231);
It gives answer 30
如果你做 DATEDIFF(DAY, 20161201, 20161231) + 1 -- 包括结束日期
It gives 31
谢谢,
艾登
【问题讨论】:
-
实际上,日期常量的 SQL Server 标准是 YYYYMMDD,没有连字符。连字符版本适用于几乎所有国际化设置(有一个例外)。我更喜欢带连字符的版本,因为我是人类并且觉得它更容易阅读。
-
哇……太棒了……谢谢!!!如果您发布答案,我会将其标记为答案
-
@GordonLinoff 只是好奇。唯一的例外是什么?
-
连字符版本不能与 DATEFORMAT YDM 和 datetime 类型一起正常工作。它将适用于其他日期格式和其他日期时间类型(日期、日期时间2、日期时间偏移)。
-
它在 SQL 2012 中不起作用。也许你在数字周围使用了单引号。
标签: sql sql-server