DECLARE @I INT SET @I=2 WHILE @I>0 BEGIN SELECT DATEADD(DD,1,GETDATE()) SELECT NEWID() SET @I=@I-1 END
在向指定日期加上一段时间的基础上,返回新的 datetime 值。语法 DATEADD ( datepart , number, date ) 参数 datepart是规定应向日期的哪一部分返回新值的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。日期部分缩写 Year yy, yyyy quarter qq, q Month mm, m dayofyear dy, y Day dd, d Week wk, ww Hour hh minute mi, n second ss, s millisecond ms number是用来增加 datepart 的值。如果指定一个不是整数的值,则将废弃此值的小数部分。例如,如果为 datepart 指定 day,为 number 指定 1.75,则 date 将增加 1。date是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。有关指定日期的更多信息,请参见 datetime 和 smalldatetime。 如果您只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。返回类型 返回 datetime,但如果 date 参数是 smalldatetime,返回 smalldatetime。 示例: select dateadd(day,1,getdate()) 现在的时间上加一天 ----------- 2010-01-16 13:40:59.703select dateadd(day,-1,getdate()) 现在的时间上减一天 ------------- 2010-01-14 13:41:52.013day可以换成其他: Year yy, yyyy quarter qq, q Month mm, m dayofyear dy, y Day dd, d Week wk, ww Hour hh minute mi, n second ss, s millisecond ms
简单点来说,就是调用函数的参数都一样时,不管调用多少次,返回值都是一样,也就是可以确定的,那么就叫确定性函数比如一个表示加法的add函数,我们一定知道返回值是两个数之和,也就是 add(1,2) == 3,不管执行多少次,都可以确定是3. declare @result 类型 ; set @result = fun(可选参数) ; while @result = fun(可选参数) continue; 确定性函数fun会造成死循环,如abs,不确定性函数不会,如getdate,
SET @I=2
WHILE @I>0
BEGIN
SELECT DATEADD(DD,1,GETDATE())
SELECT NEWID()
SET @I=@I-1
END
在向指定日期加上一段时间的基础上,返回新的 datetime 值。语法
DATEADD ( datepart , number, date ) 参数
datepart是规定应向日期的哪一部分返回新值的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。日期部分缩写
Year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms number是用来增加 datepart 的值。如果指定一个不是整数的值,则将废弃此值的小数部分。例如,如果为 datepart 指定 day,为 number 指定 1.75,则 date 将增加 1。date是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。有关指定日期的更多信息,请参见 datetime 和 smalldatetime。 如果您只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。返回类型
返回 datetime,但如果 date 参数是 smalldatetime,返回 smalldatetime。
示例:
select dateadd(day,1,getdate())
现在的时间上加一天
-----------
2010-01-16 13:40:59.703select dateadd(day,-1,getdate())
现在的时间上减一天
-------------
2010-01-14 13:41:52.013day可以换成其他:
Year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms
declare @result 类型 ;
set @result = fun(可选参数) ;
while @result = fun(可选参数) continue; 确定性函数fun会造成死循环,如abs,不确定性函数不会,如getdate,
GETDATE等日期处理函数和随机函数是不确定函数。
觉得一楼的回答言简意赅,很容易理解啊