一些常用的系统函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
附录B 一些常用的系统函数
SQL Server 2008提供了许多内置函数,使用这些函数可以方便快捷地执行某些操作。这些函数通常用在查询语句中,一般来说,允许使用变量、字段或表达式的地方都可以使用这些内置函数。本附录将介绍一些比较常用的日期函数、字符串函数和类型转换函数。
B.1日期函数
日期和时间函数对日期和时间类型的数据执行操作,并返回一个字符串、数字值或日期和时间值。
1. GETDATE
作用:按 datetime 值的SQL Server 标准内部格式返回当前的系统日期和时间。
返回类型:datetime。
说明:日期函数可用在 SELECT 语句的选择列表或用在查询语句的 WHERE 子句中。
例1. 用 GETDATE 返回系统当前的日期和时间。
SELECT GETDATE()
例2. 在CREATE TABLE语句中使用 GETDATE函数作为列的默认值,这样可简化用户对业务发生日期和时间的输入。此示例创建Employees 表,用 GETDATE函数的返回值作为员工参加工作的默认报到时间。
CREATE TABLE Employees(
eid char(11) NOT NULL,
ename char(10) NOT NULL,
hire_date datetime DEFAULT GETDATE()
)
2.DATEADD
作用:对给定的日期加上一段时间,返回新的 datetime 值。
语法: DATEADD( datepart, number, date )
其中:
Datepart:是与 number 相加的date部分。表B.1列出了有效的 datepart 参数。
表B.1 SQL Server识别的日期部分和缩写形式
●Number:是一个整数或表达式,是与 date 的 datepart 相加的值。
●date:是返回datetime或smalldatetime值或日期格式字符串的表达式。
返回类型:返回datetime,但如果date参数是smalldatetime,则返回smalldatetime。
例3.计算当前日期加上100天后的日期。
SELECT DATEADD(DAY,100,GETDATE())
3.DATEDIFF
作用:返回两个指定日期之间所差的日期。
语法:DATEDIFF( datepart, startdate, enddate )
其中datepart的取值如表B.1所示。
返回类型:int
说明:返回结果是用结束日期(enddate)减去开始日期(startdate)。如果开始日期比结束日期晚,则返回负值。
例4.计算2015年5月1日到2015年10月1日之间的天数。
SELECT DATEDIFF( DAY,'2015/5/1', '2015/10/1' )
4.DATENAME
作用:返回代表指定日期的指定日期部分的字符串描述。
语法:DATENAME( datepart, date )
其中datepart的取值如表B.1所示。
返回类型:nvarchar
说明:SQL Server 自动在字符和datetime值间按需要进行转换。
例5.得到系统当前日期中得到月份。
SELECT DATENAME (month, GETDATE()) AS 'Current month'
5.DATEPART
作用:返回代表给定日期的指定日期部分的整数。
语法:DATEPART( datepart, date )
datepart的取值如表B.1所示。
返回类型:int
例6. 得到系统当前日期中得到年份。
SELECT DATEPART (year, GETDATE()) AS 'Current year'
6.DAY
作用:返回指定日期的日部分的整数。
语法:DAY( date )
返回类型:int
说明:此函数等价于DATEPART( day, date )。
例10.返回当前日期的日部分。
SELECT DAY(getdate()) AS 'Day Number'
7.MONTH
作用:返回指定日期的月份的整数。
语法:MONTH ( date )
返回类型:int
说明:此函数等价于 DATEPART( month, date )。
8.YEAR
作用:返回指定日期中的年份的整数。
语法:YEAR ( date )
返回类型:int
说明:此函数等价于 DATEPART( year, date )。
B.2 字符串函数
字符串函数用于对字符数据进行操作,返回字符串或数字值。
1.LEFT
作用:返回从字符串左边开始指定个数的字符串。
语法:LEFT ( character_expression , integer_expression )
其中:
●character_expression:字符串数据,可以是常量、变量或列名。
●integer_expression:正整数,指定character_expression 将返回的字符个
数。如果integer_expression为负,则将返回错误。
返回类型:
●当 character_expression 为非Unicode字符类型时,返回varchar。
●当 character_expression 为Unicode 字符类型时,返回nvarchar。
例1.返回字符串“abcdefg”最左边的 2 个字符。
SELECT LEFT('abcdefg', 2)
执行结果为:ab
例2.对Student表,查询所有不同的姓氏(假设没有复姓)。
SELECT DISTINCT LEFT(Sname,1) AS 姓氏 FROM Student
执行结果如图B-1所示。
图B-1 例2的执行结果2.RIGHT
作用:返回字符串中从右边开始指定个数的字符串。
语法:RIGHT ( character_expression, integer_expression ) 各参数含义及返回类型同LEFT。
例3.返回字符串“abcdefg”最右边的 2 个字符。
SELECT RIGHT ('abcdefg', 2)
执行结果为:fg
3.LEN