姓名asxm bh=identity(int, 1, 1) to cbf2 from学生表 11. ISDATEO_判断是否为有效的日期,如果是则返回1,否则返回0 ISDATE(表达式) 例 print iodate( 2003/3/3) print iodate( 2003-3/3) print iodate( 2003=3/3) 12. ISNULLO—用确定值替换空值(类似于 coalesce) ISNULL (<check expression>, <replacement value>) 当 check expression的值为NULL时,函数返回 replacement value 的值,否则返回 check expression的值。 要求 check expression和 replacement value的类型相同或可以转换。 print isnull(a, D) declare @x int print isnull(@x, 1) 例2:因为先修课字段的类型为char(4),所以结果只显示没有先修 课的前两个汉字 select课程名, isnull先修课,没有先修课) from课程表 13. ISNUMERICO判断是否为合法的数值表达式,是则返回1,否则 返回0。 ISNUMERIC(<表达式>) 例
26 姓名 as xm, bh=identity(int,1,1) into cbf2 from 学生表 11.ISDATE()—判断是否为有效的日期,如果是则返回 1,否则返回 0。 ISDATE (表达式) 例 1: print isdate('2003/3/3') print isdate('2003-3/3') print isdate('2003=3/3') 12.ISNULL()—用确定值替换空值(类似于 coalesce) ISNULL (<check_expression>,<replacement_value>) 当 check_expression 的值为 NULL 时,函数返回 replacement_value 的值,否则返回 check_expression 的值。 要求 check_expression 和 replacement_value 的类型相同或可以转换。 例 1: print isnull('a',1) declare @x int print isnull(@x,1) 例 2:因为先修课字段的类型为 char(4),所以结果只显示'没有先修 课'的前两个汉字。 select 课程名,isnull(先修课,'没有先修课') from 课程表 13.ISNUMERIC()—判断是否为合法的数值表达式,是则返回 1,否则 返回 0。 ISNUMERIC (<表达式>) 例 1:
print isnumeric( 1+3/4) int isnumeric(1+@a) 14. NULLIFO判断表达式是否相等 NULLIF(<表达式1>,<表达式2>) 当表达式1和表达式2的值相等时,函数返回NULL值,否则返回 表达式1的值 例1: print isnull(nullif(l, 1),'I) rint isnull(nullif(2, 1), 1) 15. USER ID()求数据库用户的标识号,函数根据用户名返回数据库用 户的ID号,返回值类型为int USER ID(User name]) 注意:登录名用于登录到 SQL Server(如s),也称为登录用户名成 用户安全帐户名。登录成功后要使用某一数据库,必须要有该数据库的 数据库用户名。 例 rint user ido print user id (guest) rint user id (dbo) 16. USER NAME(返回数据库的用户名,函数返回值的类型为 nchar USER NAME (user idD) 例1 print user name(user id('dbo)) 17. SUSER SID求登录用户名(即用户安全账户名)的标识号,返回 值为int类型。如果不指定用户名,则返回当前用户的SID
27 print isnumeric(1+3/4) declare @a int print isnumeric(1+@a) set @a=1 print isnumeric(1+@a) 14.NULLIF()—判断表达式是否相等 NULLIF (<表达式 1>,<表达式 2>) 当表达式 1 和表达式 2 的值相等时,函数返回 NULL 值,否则返回 表达式 1 的值。 例 1: print isnull(nullif(1,1),'1') print isnull(nullif(2,1),'1') 15.USER_ID()—求数据库用户的标识号,函数根据用户名返回数据库用 户的 ID 号,返回值类型为 int。 USER_ID ([‘user_name’]) 注意:登录名用于登录到 SQL Server(如 sa),也称为登录用户名或 用户安全帐户名。登录成功后要使用某一数据库,必须要有该数据库的 数据库用户名。 例 1: print user_id() print user_id ('guest') print user_id ('dbo') 16.USER_NAME()—返回数据库的用户名,函数返回值的类型为 nchar。 USER_NAME ([user_id]) 例 1: print user_name(user_id('dbo')) 17.SUSER_SID()—求登录用户名(即用户安全账户名)的标识号,返回 值为 int 类型。如果不指定用户名,则返回当前用户的 SID
SUSER SID (login nameD 18. SUSER SNAME(一求登录用户名(即用户安全账户名),返回值类 型为 nchar。 SUSER SNAME (Server user sid) 例1 print suser sname(0xo1) (二)日期函数:用来操作 datetime、sma1 datetime类型的数据 1.DAY(日期表达式)求日期表达式中的日期值(天数)。 2. MONTH(日期表达式)求月份值 3.YEAR(日期表达式求年份值。 4. DATEADDO_求日期 olddate加上额外日期 number后得到的新日期 DATEADD(<datepart>, <number>, <olddate>) datepart:用来指定构成日期增量(减量)的类别 number:可正可负。 例 print dateadd( year, 1, 2003-5-4) print dateadd month, 1, 2003-5-4) print dateadd( day, 1, 2003-5-4) print dateadd( week, 1, 2003-5-4") print dateadd (hour, 1, 2003-5-4) print dateadd minute, 1, 2003-5-4) int dateadd second, 1, 2003-5-4") print dateadd( millisecond, 1, 2003-5-4) int dateadd( quarter,2003-5-4)- quarter指季度(3个月) print dateadd quarter, -1, 2003-5-4") 5. DATEDIFE0求两个日期之间的日期时间差:date2 datel
28 SUSER_SID ([‘login_name’]) 18.SUSER_SNAME()—求登录用户名(即用户安全账户名),返回值类 型为 nchar。 SUSER_SNAME ([server_user_sid]) 例 1: print suser_sname(0x01) (二)日期函数:用来操作 datetime、smalldatetime 类型的数据 1.DAY(日期表达式)—求日期表达式中的日期值(天数)。 2.MONTH(日期表达式)—求月份值。 3.YEAR(日期表达式)—求年份值。 4.DATEADD()—求日期 olddate 加上额外日期 number 后得到的新日期 DATEADD (<datepart>,<number>,<olddate>) datepart:用来指定构成日期增量(减量)的类别。 number:可正可负。 例 1: print dateadd(year,1,'2003-5-4') print dateadd(month,1,'2003-5-4') print dateadd(day,1,'2003-5-4') print dateadd(week,1,'2003-5-4') print dateadd(hour,1,'2003-5-4') print dateadd(minute,1,'2003-5-4') print dateadd(second,1,'2003-5-4') print dateadd(millisecond,1,'2003-5-4') print dateadd(quarter,1,'2003-5-4') -- quarter 指季度(3 个月) print dateadd(quarter,-1,'2003-5-4') 5.DATEDIFF()—求两个日期之间的日期时间差:date2-date1
DATEDIFF(<datepart>, <date l>,<date2>) 例1: int datediff( day, 2002-5-4, 2003-6-5) print datediff(month, 2002-5-4, 2003-6-5) int datediff(year, 2002-5-4, 2003-6-5) print datediff( week, 2002-5-4, 2003-6-5) 例2:查询已入学2年以上的学生名单 select from学生表 where datediff(year,入学年份, getdate>=2 比较: select from学生表 where datediff(day,入学年份, getdate>=365*2 6*. DATENAME(获取日期中指定部份的名称,为字符串,而非数值, 故不同于day(、 month(、 year DATENAME (<datepart>, <date>) 例1 print datename(year, getdate) print datename( month, getdate) print datename(day, getdate) print datename( week, getdate) print datename(hour, getdate) print datename( minute, getdate) rint datename( second getdate) select姓名, catenane(year,入学年份)as年
29 DATEDIFF (<datepart>,<date1>,<date2>) 例 1: print datediff(day,'2002-5-4','2003-6-5') print datediff(month,'2002-5-4','2003-6-5') print datediff(year,'2002-5-4','2003-6-5') print datediff(week,'2002-5-4','2003-6-5') 例 2:查询已入学 2 年以上的学生名单。 select * from 学生表 where datediff(year,入学年份,getdate())>=2 --比较: select * from 学生表 where datediff(day,入学年份,getdate())>=365*2 6*.DATENAME()—获取日期中指定部份的名称,为字符串,而非数值, 故不同于 day()、month()、year()。 DATENAME (<datepart>,<date>) 例 1: print datename(year,getdate()) print datename(month,getdate()) print datename(day,getdate()) print datename(week,getdate()) print datename(hour,getdate()) print datename(minute,getdate()) print datename(second,getdate()) select 姓名,datename(year,入学年份) as 年
from学生表 7*. DATEPART(一获取日期中指定部份的数值,故等同于dayO、 month、 DATEPART(datepart>, <date> 例1 print datepart(year, getdate) print datepart(month, getdate) pr datepart(week, getdate) int datepart(hour, getdate) datepart(minute, getdate) 姓名, datepart(yea,入学年份)as年 学生表 8. GETDATEO一获取系统当前的日期和时间,函数返回值类型为 (三)字符串函数:用来操作二进制(将它解释为字符串,如0x413035 解释为’A05′)、字符串数据 具体分为 字符转换函数:ASCI、CHAR、 LOWER、 UPPER、STR 去空格函数: LTRIM、 RTRIM 取子串函数:LEFT、 RIGHT、 SUBSTRING 串比较函数: CHARINDEX、 PATINDEX 串操作函数: REVERSE、 REPLACE、 SPACE、 STUFF、 REPLICATE、 QUOTENAME 1.ASC(O一返回返回字符串最左端字符的 ASCIi码 ASCI(字符串表达式)
30 from 学生表 7*.DATEPART()—获取日期中指定部份的数值,故等同于 day()、month()、 year()。 DATEPART (<datepart>,<date>) 例 1: print datepart(year,getdate()) print datepart (month,getdate()) print datepart (day,getdate()) print datepart (week,getdate()) print datepart (hour,getdate()) print datepart (minute,getdate()) print datepart (second,getdate()) select 姓名,datepart(year,入学年份) as 年 from 学生表 8.GETDATE()—获取系统当前的日期和时间,函数返回值类型为 datetime。 (三)字符串函数:用来操作二进制(将它解释为字符串,如 0x413035 解释为’A05’)、字符串数据。 具体分为: ⚫ 字符转换函数:ASCII、CHAR、LOWER、UPPER、STR ⚫ 去空格函数:LTRIM、RTRIM ⚫ 取子串函数:LEFT、RIGHT、SUBSTRING ⚫ 串比较函数:CHARINDEX、PATINDEX ⚫ 串 操 作 函数 : REVERSE 、 REPLACE 、 SPACE 、 STUFF 、 REPLICATE、QUOTENAME 1.ASCII()—返回返回字符串最左端字符的 ASCII 码 ASCII (字符串表达式)