SQL Server中的DATEADD怎么使用

发布时间:2021-12-23 09:32:32 作者:iii
来源:亿速云 阅读:484

这篇文章主要讲解了“SQL Server中的DATEADD怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL Server中的DATEADD怎么使用”吧!

句法

与类似的功能一样,  DATEADD 可以对日期和时间进行算术运算。语法很简单:

DATEADD (datepart, number, date)

该  number 部分必须是整数,并且必须在日期部分的可接受值范围内。

该  datepart 部分必须是以下日期部分之一(我们在之前的   帖子中看到  过):

DATEPART缩略语
是的,yyyy
25美分硬币qq,q
mm,m
DAYOFYEARdy,y
dd,d
wk,ww
平日dw,w
小时HH
分钟mi,n
第二ss,s
毫秒女士
微秒MCS
纳秒NS

虽然  DATEADD 支持上表中所示的缩写,但我们应尽一切努力使用完整表达式来确保代码的清晰度。如果我们使用缩写,SQL Server不会运行得更快。

另请注意,虽然我们可以使用纳秒加或减  DATEADD,但DATETIME2 数据类型的最小粒度为  100纳秒,因此需要考虑舍入。

退货类型

DATEADD 将使用date 参数中使用的数据类型返回结果  。例如,如果我们使用以YYYYMMDD 格式表示日期的文字字符串  ,则返回类型将是一个  DATETIME 值,因为文字字符串被隐式转换为  DATETIME

SELECT DATEADD(DAY,1,'20181031')
- 返回DATETIME值'2018-11-01 00:00:00.000'

但是,如果我们使用  DATETIME2 输入值,结果将是一个  DATETIME2 值。

SELECT DATEADD(纳秒,100,CAST('20181031'  AS DATETIME2))
- 返回DATETIME2值'2018-10-31 00:00:00.0000001'

加减

我们之前看到过  DATEADD 可以用于加法    减法,这使得向后和向前计算值变得容易。我们假设我们需要计算100天前的时间点。如果我们以今天为出发点,它将如下所示:

DECLARE  @dt DATETIME2 = SYSUTCDATETIME();
SELECT  @dt  AS [TimeNow],DATEADD(DAY, - 100,@ dt)AS [TimeThen];

注意在部分中使用负号  number 。结果如下:

TimeNow: 2018-10-31 09:17:21.7866500
TimeThen: 2018-07-23 09:17:21.7866500

几个月的算术

关于这个功能的最后一个想法。在增加或减少月数时,请注意不包含31天的月份。例如,让我们在2018年2月底添加一个月:

SELECT DATEADD(MONTH,1,'20180228')
- 返回DATETIME值'20180328'

但是,如果我们在2018年1月底添加一个,两个或三个月,我们会看到不同的结果:

SELECT DATEADD(MONTH,1,'20180131');
- 返回DATETIME值'20180228'

SELECT DATEADD(MONTH,2,'20180131');
- 返回DATETIME值'20180331'

SELECT DATEADD(MONTH,3,'20180131');
- 返回DATETIME值'20180430'

DATEADD 是一个非常有用的系统函数在T-SQL中添加和减去日期和时间的值,我广泛使用。只要我们记住它围绕数据类型和数月长度的怪癖,它就会非常强大。

感谢各位的阅读,以上就是“SQL Server中的DATEADD怎么使用”的内容了,经过本文的学习后,相信大家对SQL Server中的DATEADD怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. SQL Server time(2)类型存储为int后如何转换
  2. 如何在SQL Server计算XX年第XX周是哪几天

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

dateadd sql server

上一篇:Java怎么实现工厂方法设计模式

下一篇:mysql中出现1053错误怎么办

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》