1、常用函数
目录:
1、replace 函数
2、ISNULL 函数
3、DATEADD函数
4、DATEDIFF函数
5、ISNULL 函数
6、DATEPART 函
7、LEN 函数
8、LTRIM 和 RTRIM 函数
9、IIF函数
10、sqlserver 的 merge info 函数
1、replace 函数:
-- 把数据库表article中的所有title字段里的w3cschool字符串替换成hello。
update `article` set title=replace(title,'w3cschool','hello');
2、ISNULL 函数:
语法: isnull(value1,value2)
解释:
1、value1与value2的数据类型必须一致。
2、如果value1的值不为null,结果返回value1。
3、如果value1为null,结果返回vaule2的值。vaule2是你设定的值。
扩展:
跟mysql 的ifnull()函数相同
ifnull(value1,value2)
1、如果value1不为空,结果返回value1。
2、如果value1为空,结果返回value2。同上
3、时间函数1 (DATEADD):
语法:DATEADD ( datepart , number, date )
参数1:datepart
是规定应向日期的哪一部分返回新值的参数。下表列出了 Microsoft? SQL Server? 识别的日期部分和缩写。
参数2:number
是用来增加 datepart 的值。如果指定一个不是整数的值,则将废弃此值的小数部分。例如,如果为datepart 指定 day,为 number 指定 1.75,则 date 将增加 1。
参数3:date
是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式;
返回类型:
返回 datetime,但如果 date 参数是 smalldatetime,返回 smalldatetime。
4、时间函数1 (DATEDIFF):
语法: DATEDIFF ( datepart , startdate , enddate )
参数: datepart
是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft? SQL Server? 识别的日期部分和缩写。
常用的场所:=============
Sql Server 查询指定范围(一周,一月,本周,本月等)内的数据 1.查询今日的所有数据 select * from 表名 where datediff(day,字段名,getdate())=0 2.查询昨日的所有数据 select * from 表名 where datediff(day,字段名,getdate()-1)=0 3.查询当天日期在一周前的数据 selcet * from 表名 where datediff(week,字段名,getdate()-1)=0 4.查询前30天的数据 select * from 表名 where datediff(d,字段名,getdate())<=30 5.查询上一个月的数据 select * from 表名 where datediff(m,字段名,getdate())<=1 6.查询当天的数据 select * from 表名 where datediff(dd,字段名,getdate())=0 7.查询24小时内的数据 select * from 表名 where datediff(hh,字段名,getdate()) 8.查询本周的数据 select * from 表名 where datediff(week,字段名,getdate())=0 9.查询本月的数据 select * from 表名 where datediff(month,字段名,getdate())=0 10.查询本季的数据 select * from 表名 where datediff(qq,字段名,getdate())=0
5、DATENAME 函数: (返回代表指定日期的指定日期部分的字符串.)
语法: DATENAME ( datepart , date )
参数: datepart
是指定应返回的日期部分的参数。下表列出了 Microsoft? SQL Server? 识别的日期部分和缩写。
例如:
6、DATEPART 函数:( 返回代表指定日期的指定日期部分的整数。)
语法: DATEPART ( datepart , date )
参数: datepart
是指定应返回的日期部分的参数。下表列出了 Microsoft? SQL Server? 识别的日期部分和缩写。
日期部分 缩写
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
weekday dw
Hour hh
minute mi, n
second ss, s
millisecond ms
例如:
扩展:
7、LEN 函数: (返回给定字符串表达式的字符(而不是字节)个数,其中不包含尾随空格 但是会计算前面的空格。)
语法: LEN ( string_expression )
参数: string_expression 要计算的字符串表达式。
返回类型: int
例如1:
例如2:
8、LTRIM 和 RTRIM 函数: (删除起始或者尾随空格后返回字符表达式。)
返回类型: varchar
9、IIF函数: (真前假后)
10、sqlserver 的 merge info 函数
解释: 使用 T2 的数据,满足条件 修改T1 或插入 T1数据;
MERGE INTO A T1
USING(
SELECT * FROM B
) T2 on (T1.ID= T2.ID)
--这个位置写条件
WHEN MATCHED AND ISNULL(T1.value,'')<>'' THEN
UPDATE SET T1.value = T2.fValue
--这个位置写条件
WHEN NOT MATCHED AND 其他条件 THEN
INSERT(ID,pointguid,value,datadate,createdate,iid,istatus)
VALUES(T2.ID,T2.pointguid, T2.fValue,T2.datadate,T2.createdate,T2.iid,T2.istatus);
不满足条件: T1.ID= T2.ID 就删除 T1 里多余的数据
WHEN NOT MATCHED by SOURCE THEN DELETE;