--SQL sever语言 数据库 函数
--声明变量
declare @a varchar(20)
set @a = 'svdaj'
--或 select @a = 'svdaj'
print @a
--或select @a
--内置全局变量
select @@SERVERNAME, @@version ,@@rowcount , getdate(), newid()
print(newid())
--1数值函数
select CEILING(12.4) 结果大于等于输入的数
select floor(12.4) 结果小于等于输入的数
--四舍五入
select round(12.456,2) 标明参数精确到小数第几位
--随机生成
select RAND() 生成0到1之间的数
--取绝对值
select abs(-123)
--平方值
select POWER(4,2)--输入数值,次方数
--2字符函数
--长度
select len(' 127 347 ') 自动省去后面空格长度
--截取
select substring('34323',1,3) --输入为字符串 起始位置和截取字段长度
select LEFT('3654',3) --左截取,只传字符串和长度
select RIGHT ('dsj',2) --右截取,只传字符串和长度
-- 索引 (注意:与visual不同 位置是从1开始)
select CHARINDEX('d','dfvjsdvf',4) --输入要找的字符串,被找的对象,开始位置
--去空格
select ltrim(' 3442')去左边空格
select RTRIM ('534 ')去右边空格
select LTRIM (RTRIM (' 2314 ')) 去左右空格
--倒序
select reverse('6132')
--替换
select REPLACE('dayugd','da','cd') 直接替换
select stuff('agsvdajs',3,2,'hdgajgd') --输入字符串,起始位置,长度,要替换的字符串 是指定位置替换
--大小写转换
select lower('eAGVSVx')将字符全部转化为小写
select UPPER('vgdvsgTTT')将字符全部转化为大写
--查询ASCII码
select ascii('bc') 查找输入字符串最左边字符的按时ascii码
select CHAR('78') 查询ascii码对应的字符
-- 数字优先级
print('123'+123) --转化为数值之间的计算
select('123'+'123') --字符串的连接
--日期与时间的函数 Getdate数据库当前系统时间
select DATEADD(yy,-2,getdate())--输入时间函数,操作的数值,要操作的现有时间
--函数时间差
select DATEDIFF (YY,DATEADD(yy,-3,getdate()),dateadd(yy,+2,getdate())) --输入日期函数,操作的较小日期函数,操作的较大日期函数
--查询包括年月日在内的所有函数 (year(date) month() day())
select datepart(YY,getdate()) --包括时间全部函数 输入(年月日时分秒函数
),当前时间
--转换函数
--功能:将某种数据类型的表达式显示转化为另一种数据类型
select cast('2434.456' as decimal(7,2))--输入数据表达式 as要转化的数据类型 注意:小数可进行四舍五入
select convert(int,'123')
--convert优势 时间格式换
select convert(varchar(20),GETDATE(),25)
--特定查询结果 25 年月日时分秒 23 年月日 8时分秒 12 缩写年月日
--函数应用
declare @dt as datetime
set @dt=GETDATE ()
select YEAR(@dt),MONTH (@dt),DAY(@dt)