sqlserver中的函数

本文介绍了多种字符串处理函数,如转换大小写、截取子串等,并详细解释了时间处理函数,包括日期相加、计算日期差等实用操作。此外还提到了一些系统函数。

定符串处理函数

 charindex

返回字符串中指定表达式的起始位置。

语法

CHARINDEX ( '要查询的字符串', '字符串' [ , 从字符串中第几个字符开始查询] )

lower

将字符串转换为小写

upper

将字符串转换为大写

ltrim

清除字符左边的空格

rtrim

清除字符右边的空格

right

从字符串右边返回指定数目的字符

right('字符串',num)

left

从字符串左边返回指定数目的字符

left('字符串',num)

replace

替换一个字符串中的字符

replace('原字符串','原字符串要替换的字符','新字符')

stuff

删除一个字符串中指定长度的字符,并在该位置插入一个新的字符

stuff('原字符串',从第几个字符开始删,要删除几个字符.'插入的新字符')

substring

获取指定长度的字符串

substring('字符串',从第几个字符开始截取,截取几个字符)

时间处理函数

dateadd

将指定的数值添加到指定的日期部分后的日期

dateadd(datepart,加多少,'时间')

例如: dateadd(mm,3,'2007/07/07')  返回7007/10/07

datepart 可以为 yy(Year) qq(quarter),mm(month),dy(dayofyear),dd(day),wk(week),hh(hour),

  mi(minute) ss(second) ms(millsecond)

datediff

返回两个日期指定部分的差值

datediff(datepart,'date','date')

datename

日期中指定日期部分的字符串

datename(dw,'01/01/2000') 返回Saturday

datepart

日期中指定日期部分的整数形式

datepart(day,'date')

系统函数

current_user 返回当前用户的名字

datalength 返回用于指定表达式的字节数

host_name() 返回当前用户登录的计算名

system_user 返回当前所登录的用户名称

user_name() 从给定的用户ID返回用户名

在 SQL Server 中,函数调用的方法取决于函数的类型。SQL Server 支持多种类型的函数,包括标量函数、内嵌表值函数和多语句表值函数[^1]。 ### 标量函数 标量函数返回单个值。要调用标量函数,可以在 SELECT 语句中使用它,也可以在 WHERE 子句或其他表达式中使用。 ```sql -- 假设有一个名为 dbo.GetEmployeeName 的标量函数,它接受一个员工ID并返回姓名 SELECT dbo.GetEmployeeName(1001) AS EmployeeName; ``` ### 内嵌表值函数 内嵌表值函数返回一个表。这类函数可以像视图一样在 FROM 子句中使用。 ```sql -- 假设有一个名为 dbo.GetEmployeesByDepartment 的内嵌表值函数,它接受部门ID作为参数 SELECT * FROM dbo.GetEmployeesByDepartment(5); ``` ### 多语句表值函数 多语句表值函数也返回一个表,但是它们的功能更为复杂,因为它们允许使用多个 T-SQL 语句来构建返回的表。 ```sql -- 假设有一个名为 dbo.GetComplexEmployeeData 的多语句表值函数 SELECT * FROM dbo.GetComplexEmployeeData('Sales', '2023-01-01'); ``` ### 日期格式化函数 对于日期格式化需求,可以使用 `CONVERT` 函数来实现。下面是一些常用的日期格式化示例: ```sql -- 不同的日期时间格式 SELECT CONVERT(varchar(100), GETDATE(), 8) AS [hh:mm:ss]; -- 10:57:46 SELECT CONVERT(varchar(100), GETDATE(), 24) AS [hh:mm:ss]; -- 10:57:47 SELECT CONVERT(varchar(100), GETDATE(), 108) AS [hh:mm:ss]; -- 10:57:49 SELECT CONVERT(varchar(100), GETDATE(), 12) AS [yyMMdd]; -- 060516 SELECT CONVERT(varchar(100), GETDATE(), 23) AS [yyyy-MM-dd]; -- 2006-05-16 ``` 这些是基本的函数调用方式,具体使用时需要根据实际定义的函数进行调整。确保在调用任何函数之前了解其输入参数和输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值