SQL Server 常用函数

时间:2021-02-10 11:51:29

1.DATEADD 在向指定日期加上一段时间的基础上,返回新的 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。

示例

SQL Server 常用函数

2.DATEDIFF 返回跨两个指定日期的日期和时间边界数。

语法 DATEDIFF ( datepart , startdate , enddate )

参数 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

startdate

是计算的开始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。

因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。

如果您只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所 在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世 纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。

有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。

enddate

是计算的终止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。

返回类型 integer

注释 startdate 是从 enddate 减去。如果 startdate 比 enddate 晚,返回负值。

当结果超出整数值范围,DATEDIFF 产生错误。对于毫秒,最大数是 24 天 20 小时 31 分钟零 23.647 秒。对于秒,最大数是 68 年。

计算跨分钟、秒和毫秒这些边界的方法,使得 DATEDIFF 给出的结果在全部数据类型中是一致的。结果是带正 负号的整数值,其等于跨第一个和第二个日期间的 datepart 边界数。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之间的星期数是 1。

示例:

SQL Server 常用函数

3.DATENAME

返回代表指定日期的指定日期部分的字符串。

语法 DATENAME ( datepart , 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

weekday (dw) 日期部分返回星期几(星期天、星期一等)。

是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。对 1753 年 1 月 1 日之后的日期用 datetime 数据类型。更早的日期存储为字符数据。当输入 datetime 值时,始终将其放入引号中。因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。有关指定日期的更多信 息,请参见 datetime 和 smalldatetime。有关时间值指定的更多信息,请参见时间格式。

如果只指定年份的最后两位数字,则小于或等于 two digit year cutoff 配置选项的值的最后两位数字的值 所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个 世纪。例如,如果 two digit year cutoff 为 2050(默认),则 49 被解释为 2049,50 被解释为 1950。为避免模糊,请使用四位数字的年份。

返回类型 nvarchar

注释 SQL Server 自动在字符和 datetime 值间按需要进行转换,例如,当将字符值与 datetime 值进行比较时。

示例

SQL Server 常用函数

4.DATEPART 返回代表指定日期的指定日期部分的整数。

语法 DATEPART ( datepart , 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

week (wk, ww) 日期部分反映对 SET DATEFIRST 作的更改。任何一年的 1 月 1 日定义了 week 日期部分 的开始数字,例如:DATEPART(wk, ’Jan 1, xxxx’) = 1,此处 xxxx 代表任一年。

weekday (dw) 日期部分返回对应于星期中的某天的数,例如:Sunday = 1、Saturday = 7。weekday 日期 部分产生的数取决于 SET DATEFIRST 设定的值,此命令设定星期中的第一天。

date

是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。对 1753 年 1 月 1 日之后的日期用 datetime 数据类型。更早的日期存储为字符数据。当输入 datetime 值时,始终将其放入引号中。因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。

如果只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在 世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世 纪。例如,如果 two digit year cutoff 为 2049 (默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。

有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。

返回类型 int

注释
DAY、MONTH、和 YEAR 函数分别是 DATEPART(dd, date)、DATEPART(mm, date)、和 DATEPART(yy,
date) 的同义词。

示例:

SQL Server 常用函数

5.DAY 返回代表指定日期的天的日期部分的整数。

语法 DAY ( date )

参数 date

类型为 datetime 或 smalldatetime 的表达式。

返回类型 int

注释 此函数等价于 DATEPART(dd, date)。

6.GETDATE

按 datetime 值的 Microsoft? SQL Server? 标准内部格式返回当前系统日期和时间。

语法 GETDATE ( )

返回类型 datetime

注释 日期函数可用在 SELECT 语句的选择列表或用在查询的 WHERE 子句中。

在设计报表时,GETDATE 函数可用于在每次生成报表时打印当前日期和时间。GETDATE 对于跟踪活动也很有 用,诸如记录事务在某一帐户上发生的时间。

示例

SQL Server 常用函数

7.GETUTCDATE 返回表示当前 UTC 时间(世界时间坐标或格林尼治标准时间)的 datetime 值。当前的 UTC 时间得自当前 的本地时间和运行 SQL Server 的计算机操作系统中的时区设置。

语法 GETUTCDATE()

返回类型 datetime

注释 GETUTCDATE 是非确定性函数。引用该列的视图和表达式无法进行索引。

GETUTCDATE 无法在用户定义的函数内调用。

8.MONTH 返回代表指定日期月份的整数。

语法 MONTH ( date )

参数 date

返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。仅对 1753 年 1 月 1 日后的日期使用 datetime 数据类型。

返回类型 int

注释 MONTH 等价于 DATEPART(mm, date)。

将 datetime 值包含在引号中。对于早期日期,可将其存储为字符数据。

9.YEAR 返回表示指定日期中的年份的整数。

语法 YEAR ( date )

参数 date

datetime 或 smalldatetime 类型的表达式。

返回类型 int

注释 此函数等价于 DATEPART(yy, date)。

1.ABS 返回给定数字表达式的绝对值。

语法 ABS ( numeric_expression )

参数 numeric_expression

精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。

返回类型 返回与 numeric_expression 相同的类型。

示例 下例显示了 ABS 函数对三个不同数字的效果。

SELECT ABS(-1.0), ABS(0.0), ABS(1.0)

下面是结果集:

---- ---- ---- 1.0  .0   1.0

ABS 函数可能产生溢出错误,例如:

SELECT ABS(convert(int, -2147483648))