日期函数

函数名称 含义 示例
GetDate 返回当前系统日期和时间,返回值类型为datetime select GETDATE()//输出当前日期
YEAR 返回指定日期的年份 YEAR('08/20/2008')//结果为2008
MONTH 返回指定日期的月份 MONTH('08、20、2008') //结果为8
DAY 返回指定日期的天数 DAY('08/20/2008')// 结果为20
GETUTCDATE 返回当前系统的UTC时间 Select GETUTCDATE()
DateAdd 在向指定日期加上一段时间的基础上,返回新的datetime值,函数原型为DateAdd(detepart,number,date)

select DateADD(DAY,3,GETDate())

将当前日期+3天输出,

select DateADD(MONTH,3,GETDate())

将当前日期+3个月输出,

 DateDIFF  返回跨两个指定日期的日期和时间边界数。函数原型为DATEDIFF(datepart,startdate,endate) select DateDiff(Hour,GETUTCDate(),GetDate()),//结果为8
 DatePart 返回代码指定日期的指定日期部分的字符串。函数原型为DATENAME(datepart,date) select DATENAME(DAY,GETDATE()) //输出当前日期的天数部分

数学函数

RAND 返回一个0到1之间的float的随机数
ABS 返回指定数的绝对值
SIGN 返回个给定表达式的正(+),零(0)或负(-1)号
EXP 返回给定float表达式的指数值
LOG 返回给定float表达式的自然对数
SQUARE 返回给定表达式的平方
SQRT 返回给定表达式的平方根
POWER 返回给定表达式乘指定次方的值,函数原型为POWER
SIN 返回给定角度的三角正弦值
ASIN 返回以弧度标示的角度值,该角度的正弦为给定表达式
COS 返回给定角度的三角余弦值
ACOS 返回以弧度表示的角度值,该角度的余弦为给定的表达式
TAN 返回输入表达式的正切值
ATAN 返回以弧度表示的角度值,该角度的正切为给定的表达式

字符串函数

SPACE 返回由重复的空格组成的字符串 select SPACE(5) //输出5个空格
CHAR 将整数转化为ASCII对应的字符串 select CHAR(13)
LEN 返回给定字符串表达式的字符个数  
LEFT 返回从字符串左边开始指定个数的字符  
RIGHT 返回从字符串右边开始指定个数的字符  
SUBSTRING 返回字符串中指定的一部分 select SUBSTRING('ABCDEFG',2,5) //输出‘BCDEF’
LOWER 将大写字符数据转换为小写字符 select LOWER('ABCD')
UPPER 将小写字符转换为大写字符  
LTRIM 删除字符串左面的空格  
RTRIM 删除字符串右边的空格  
REPLACE 用第三个表达式替换第一个字符串表达式出现的所有迭戈给定字符串表达式 SELECT REPALCE('abcdef','bcde','xxxx')
REVERSE 返回字符表达式的反转 select Reverse('ABCD') 输出‘DCBA’

T-SQL2008新增功能

1.Insert  支持一次插入多条数据

Insert 学生表
values
(1,2,2),
(2,2,2)

2.Merge

能够根据一个源数据表对另一个表进行确定性的插入,更新和删除这样的复杂操作,运用新的MERGE语句,开发者一条命令就可以完成

Merge [target] t  //将source表中的数据同步到target中
using [source] s on t.id=s.id
when matched then update t.name=s.name,t.age=s.age
when not matched then values(id,name,age)
when source not matched then delete  //如果target表中有多余的而source表中没有的记录就删除

表值函数

 --------------------------这个函数用来切割字符串的-----------------
 --函数的参数  第一个是要切割的字符串 第二个是要以什么字符串切割
 CREATE FUNCTION Split(@Text NVARCHAR(4000),@Sign NVARCHAR(4000))
 RETURNS  @tempTable TABLE(id INT IDENTITY(1,1) PRIMARY KEY,[VALUE] NVARCHAR(4000))
 AS
 BEGIN
     DECLARE @StartIndex INT                --开始查找的位置
     DECLARE @FindIndex  INT                --找到的位置
     DECLARE @Content    VARCHAR(4000)    --找到的值
     --初始化一些变量
     SET @StartIndex = 1 --T-SQL中字符串的查找位置是从1开始的
     SET @FindIndex=0

     --开始循环查找字符串逗号
     WHILE(@StartIndex <= LEN(@Text))
     BEGIN
         --查找字符串函数 CHARINDEX  第一个参数是要找的字符串
         --                            第二个参数是在哪里查找这个字符串
         --                            第三个参数是开始查找的位置
         --返回值是找到字符串的位置
         SELECT @FindIndex = CHARINDEX(@Sign,@Text,@StartIndex)
         --判断有没找到 没找到返回0
         IF(@FindIndex =0 OR @FindIndex IS NULL)
         BEGIN
             --如果没有找到者表示找完了
             SET @FindIndex = LEN(@Text)+1
         END
         --截取字符串函数 SUBSTRING  第一个参数是要截取的字符串
         --                            第二个参数是开始的位置
         --                            第三个参数是截取的长度
         --@FindIndex-@StartIndex 表示找的的位置-开始找的位置=要截取的长度
         --LTRIM 和 RTRIM 是去除字符串左边和右边的空格函数
         SET @Content = LTRIM(RTRIM(SUBSTRING(@Text,@StartIndex,@FindIndex-@StartIndex)))
         --初始化下次查找的位置
         SET @StartIndex = @FindIndex+1
         --把找的的值插入到要返回的Table类型中
         INSERT INTO @tempTable ([VALUE]) VALUES (@Content)
     END
     RETURN
 END

附加:

/*

自定义函数分为:标量值函数或表值函数

  • 如果 RETURNS 子句指定一种标量数据类型,则函数为标量值函数。可以使用多条 Transact-SQL 语句定义标量值函数。
  • 如果 RETURNS 子句指定 TABLE,则函数为表值函数。

表值函数又可分为:内嵌表值函数(行内函数)或多语句函数

  • 如果 RETURNS 子句指定的 TABLE 不附带列的列表,则该函数为内嵌表值函数。
  • 如果 RETURNS 子句指定的 TABLE 类型带有列及其数据类型,则该函数是多语句表值函数。

*/

SQL基础巩固2的更多相关文章

  1. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  2. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  3. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  4. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  5. [SQL] SQL 基础知识梳理(五) - 复杂查询

    SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...

  6. 黑马程序员+SQL基础(上)

    黑马程序员+SQL基础 ---------------<a href="http://edu.csdn.net"target="blank">ASP ...

  7. Oracle SQL 基础学习

    oracel sql 基础学习 CREATE TABLE USERINFO ( ID ,) PRIMARY KEY, USERNAME ), USERPWD ), EMAIL ), REDATE DA ...

  8. 第一章 SQL基础

    第一部分:SQL基础1. 为什么学习SQL自人类社会形成之日起,社会的运转就在不断地产生和使用各种信息(文献.档案.资料.数据等):在如今所谓的信息时代,由于计算机和互联网的作用,信息的产生和使用达到 ...

  9. SQL基础--&gt; 约束(CONSTRAINT)

    --============================= --SQL基础--> 约束(CONSTRAINT) --============================= 一.几类数据完 ...

  10. SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR)[转]

    --====================================================== --SQL基础-->层次化查询(START BY ... CONNECT BY ...

随机推荐

  1. 科技部专家王涌天:移动AR头显将“让人类重新站起来”

    目前,业内普遍认为VR和AR技术将是继移动手机之后的下一代计算平台,将给社会的方方面面带来全新的改变.近日,北京理工大学信息与电子学部主任.科技部863信息技术领域专家组成员王涌天教授对头戴式增强现实 ...

  2. webpack: require.ensure与require AMD的区别

    http://blog.csdn.net/zhbhun/article/details/46826129

  3. UVa 10870 & 矩阵快速幂

    题意: 求一个递推式(不好怎么概括..)的函数的值. 即 f(n)=a1f(n-1)+a2f(n-2)+...+adf(n-d); SOL: 根据矩阵乘法的定义我们可以很容易地构造出矩阵,每次乘法即可 ...

  4. JS 特殊字符的魅力

    特殊字符的魅力 说在前面—鸭子类型 鸭子类型是动态类型的一种风格,在这种风格中,一个对象有效的语义,不是由继承自特定的类或者实现特定的接口,而是由当前方法和属性的集合决定. “当看到一只鸟走起来像鸭子 ...

  5. Jquery表格变色 复选框全选,反选

    /*jquery静态表格变色*/ $(".tr2").mouseover(function(){ $(this).css("background"," ...

  6. Flex Flash Player回声消除的最佳方法

    Adobe Flash Player 已经成为音频和视频播放的非常流行的工具.实际上,目前大多数因特网视频均使用 Flash Player观看. Flash Player 通过将许多技术进行组合可以提 ...

  7. CentOS评估磁盘I/O性能读写极限测试

    用一个fio工具 安装 yum -y install fio 二,FIO用法: 随机读:fio  -direct=1 -iodepth 1 -thread -rw=randread -ioengine ...

  8. 格式与布局 CSS阴影效果(Box-shadow)用法

    一.position:fixed 锁定位置(相对于浏览器的位置),例如有些网站的右下角的弹出窗口. 二.position:absolute 1.外层没有position:absolute(或relat ...

  9. EF 关系规则(一对一、一对多、多对多...)

    转自: http://www.cnblogs.com/dudu/archive/2011/07/11/ef_one-to-one_one-to-many_many-to-many.html Entit ...

  10. c语言.大数的输出

    转化成字符串,再用for循环输出: #include <stdio.h>#include <string.h>int main(){  char s[32];   int d, ...