字符串函数
ASCII
(
字符表达式
)
ASCII
函数,返回字符串表达式中最左端字符的
ASCII
码值
CHAR
(
整型表达式
)
将
ASCII
码值转换为相对应的字符,参数为介于
0~255
之间的
整数。没有输入
0~255
之间的
ASCII
码值则
CHAR()
返回
NULL
。
LEN
(
字符表达式
)
字符串长度函数,返回字符串表达式中字符的个数
LOWER
(
字符表达式
)
小写字母函数,将大写字母转换为小写字母,返回表达式的
小写字母表示
UPPER
(
字符表达式
)
大写字母函数,返回指定表达式的大写字母表示
REPLACE
(
字符表达式
1
,
字符表达式
2
,字符表达
式
3)
字符替换函数,用第三个表达式替换第一个字符串表达式中
包含的所有第二个字符表达式,幵返回替换后的表达式
LEFT
(
字符表达式,
n)
左子串函数,返回从字符串左边开始的
n
个字符
RIGHT
(
字符表达式,
n)
右子串函数,返回从字符串右边开始的
n
个字符
LTRIM
(
字符表达式
)
删除头部的空格函数,返回删除了前导空格的字符表达式
RTRIM
(
字符表达式
)
删除尾随空格函数,返回删除所有尾随空格的字符表达式
STR
(
数值表达式
[
,长
度
n [
,小数位
]])
数字向字符转换函数,返回由数字转换过来的字符串,长度
用于指定总长度,包括小数点,小数位指小数点右边的位数
--【例】使用常用字符串函数计算A的ASCII码,‘hello’的前3个字符,‘数据库原理’字符串的长度,将‘hello转换为大写字母,将‘英语四级’改为‘英语六级’。
select N'A的ASCII'=ASCII('A'),
N'hello的前三个字符'=LEFT('hello',3),
N'数据库原理的长度'=LEN(N' 数据库原理'),
N'将hello转换为大写字母'=UPPER('hello'),
N'将英语四级改为六级'=Replace(N' 英语四级',N'四',N'六')
select N'A的ASCII'=ASCII('A'),
N'hello的前三个字符'=LEFT('hello',3),
N'数据库原理的长度'=LEN(N' 数据库原理'),
N'将hello转换为大写字母'=UPPER('hello'),
N'将英语四级改为六级'=Replace(N' 英语四级',N'四',N'六')
--STR函数:将数值表达式的值转换为字符串,转换时自动四舍五入。默认长度为10,若不指定小数位则保留到整数位,如果长度小于数值表达式值的整数位数,则返回一串*号。
print '(0)123456789'
print '(1)'+str(123.456,7,3)
print '(2)'+str(123.456,3,0)
print '(3)'+str(123.456,2,0)
print '(4)'+str(123.456,9,2)
print '(5)'+str(123.456,10,5)
print '(6)'+str(123.456)
print '(0)123456789'
print '(1)'+str(123.456,7,3)
print '(2)'+str(123.456,3,0)
print '(3)'+str(123.456,2,0)
print '(4)'+str(123.456,9,2)
print '(5)'+str(123.456,10,5)
print '(6)'+str(123.456)
数学函数
ABS
(
数值表达式
)
绝对值函数,返回数值表达式的绝对值
ACOS
(
实型表达式
反余弦函数,返回一个余弦值对应的角度。角度以弧度表示,
实型表达式取值范围从
-1~1
,若参数超过此范围,函数返回
NULL
幵报告错误
SIN
(
数值表达式
)
正弦函数,返回表达式中以弧度表示的指定角的正弦值
COS
(
数值表达式
)
余弦函数,返回表达式中以弧度表示的指定角的余弦值
TAN
(
数值表达式
)
正切函数,返回指定表达式中以弧度表示的指定角的正切值
EXP
(
数值表达式
)
指数函数,返回表达式的指数值
LOG
(
数值表达式
)
自然对数函数,返回表达式的自然对数值
PI
()
圆周率函数,返回
14
位小数的圆周率常量值
RAND
()
随机函数,随机返回
0~1
之间的
float
数值
SIGN
(
数值表达式
)
符号函数,返回表达式的正号、零或负号
SQRT
(
数值表达式
)
平方根函数,返回表达式的平方根
select N'绝对值函数'=ABS(-5.6),
N'圆周率函数'=PI(),
N'平方根函数'=SQRT(64),
N'随机函数'=RAND(),
N'对数函数LOGIO'=LOG10(100),
N'地然对数函数LOG(2.71828)'=LOG(2.71828),
N'指数函数'=LOG(EXP(2.71828))
数据类型转换函数
--SQL Server会自动完成数据类型的转换,这种转换称隐式转换。但有些类型就不能自动转换,如int整型与char型,这时就要显式转换函cast、convert
--CAST(表达式 AS 数据类型[(长度)]) CONVERT(数据类型[(长度)],表达式[,样式])
--长度:如果数据类型允许设置长度,可以设置长度,例如varchar(10);
--样式:用于将日期类型数据转换为字符数据类型的日期格式的样式。
select CAST(1314.521+6 as int),CONVERT(int,521.1314)
日期和时间函数
GETDATE
(
日期时间型数据
)
以标准格式返回本地服务器的
DATETIME
值
DAY
(
日期时间型数据
)
返回指定日期的日期值
MONTH
(
日期时间型数据
)
返回指定日期的月份值
YEAR
(
日期时间型数据
)
返回指定日期的年份值
DATEADD
(
时间间隔,数值表达
式,日期
)
为
DATETIME
值添加间隔。时间间隔项决定时间
间隔的单位,可取
Year
、
Day of year(
一年的日数
)
、
Quarter
、
Month
、
Day
、
Week
、
Weekday(
一周的
日数
)
、
Hour
、
Minute
、
Second
、
Millisecond
。数
值表达式为加上或者减去的时间间隔
DATEDIFF
(
时间间隔,日期
1,
日期
2)
计算两个指定日期之间指定时间间隔的差,返回数
值型数据。时间间隔项决定时间间隔的单位,取值
与
DATEADD
中的时间间隔项相同
--例:使用日期和时间函数显示当前日期,在当前日期后10天的日期,当前日期与2020年4月01日相隔的天数。
select N'显示当前系统日期'=GETDATE(),
N'在当前日期后10天的日期'=DATEADD(day,10,GETDATE()),
N'当前日期与2020年4月1日相隔的天数'=DATEDIFF(DAY,GETDATE(),'2020-4-01')
select N'显示当前系统日期'=GETDATE(),
N'在当前日期后10天的日期'=DATEADD(day,10,GETDATE()),
N'当前日期与2020年4月1日相隔的天数'=DATEDIFF(DAY,GETDATE(),'2020-4-01')
系统函数
--用户可以在需要时通过系统函数获取当前主机名称、用户名称、数据库名称及系统错误信息。
--(1)函数HOST_NAME()返回服务器端计算机的名称。
-- (2) 函数OBJECT_NAME()返回数据库对象的名称。
--(3) 函数USER_NAME()返回数据库用户名。
--(4) 函数SUSER_NAME()返回用户登录名
--(5) 函数DB_NAME()返回数据库名
--(1)函数HOST_NAME()返回服务器端计算机的名称。
-- (2) 函数OBJECT_NAME()返回数据库对象的名称。
--(3) 函数USER_NAME()返回数据库用户名。
--(4) 函数SUSER_NAME()返回用户登录名
--(5) 函数DB_NAME()返回数据库名
select '计算机名'=HOST_NAME(),
'登录名'=SUSER_NAME(),
'数据库名'=DB_NAME(),
'数据库用户名'=USER_NAME()
'登录名'=SUSER_NAME(),
'数据库名'=DB_NAME(),
'数据库用户名'=USER_NAME()
sqlserver还有好多函数,在这里就不多介绍了,如果大家还想了解更多的函数可以去网上百度下,我也在学习阶段,不可能所有的函数都会使用,我把我学到的分享给大家,希望对大家学习有帮助。