日期函数

函数名称 含义 示例
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. [转载]DW数据仓库建模与ETL的实践技巧

    一.Data仓库的架构 Data仓库(Data Warehouse DW)是为了便于多维分析和多角度展现而将Data按特定的模式进行存储所建立起来的关系型Datcbase,它的Data基于OLTP源S ...

  2. 基于Theano的DL的开源小框架:Dragon

    Link:https://github.com/neopenx/Dragon 起因 最近看了Hinton的Dropout,发现原来的乱代码只能在Softmax层前面加Dropout.索性把整个Thea ...

  3. LinearLayout 垂直滚动条

    <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android=" ...

  4. jquery自己手写表单验证

    <script type="text/javascript"  src="../jquery-1.8.3.js"></script> / ...

  5. Codeforce - Travelling Salesman

    After leaving Yemen, Bahosain now works as a salesman in Jordan. He spends most of his time travelli ...

  6. Mac OS X中MacPorts安装和使用

      安装 官网pkg安装   搜索索引中的软件port search name 安装新软件sudo port install name 卸载软件sudo port uninstall name 查看有 ...

  7. BZOJ 3732 题解

    3732: Network Description 给你N个点的无向图 (1 <= N <= 15,000),记为:1…N. 图中有M条边 (1 <= M <= 30,000) ...

  8. 【BZOJ】1135: [POI2009]Lyz

    题意 有\(1\)到\(n(1 \le n \le 200000)\)号的溜冰鞋各\(k(1 \le k \le 10^9)\)双.已知\(x\)号脚的人可以穿\(x\)到\(x+d\)的溜冰鞋. 有 ...

  9. POJ 1654 Area(水题)

    题目链接 卡了一下精度和内存. #include <cstdio> #include <cstring> #include <string> #include &l ...

  10. css圆角边框

    一.CSS3圆角的优点 传统的圆角生成方案,必须使用多张图片作为背景图案.CSS3的出现,使得我们再也不必浪费时间去制作这些图片了,而且还有其他多个优点: * 减少维护的工作量.图片文件的生成.更新. ...