• SQL Server(第二章) 字符串函数、日期时间函数、转换函数


    --1.CONCAT 函数:字符串连接(支持sql server2012 SQL规则 如果与NULL连接返回NILL)
    SELECT empid,CONCAT(firstname,lastname) AS fullname
    FROM HR.Employees
    --sql server2012版本以下用 “+”号即可取代
    SELECT empid,firstname + N' ' + lastname AS fullname
    FROM HR.Employees
    
    empid       fullname
    ----------- ------------------------------
    1           Sara Davis
    2           Don Funk
    3           Judy Lew
    4           Yael Peled
    5           Sven Buck
    6           Paul Suurs
    7           Russell King
    8           Maria Cameron
    9           Zoya Dolgopyatova
    
    --2.SUBSTRING 函数:可以从字符串中抽取一个子字符串
    SELECT SUBSTRING('ABCDEFG',3,3) 
    ------
    CDE
    
    --3.LEFT和RIGHT 函数:可以从字符串的左边或右边提取自定长度的子字符串
    SELECT LEFT('ABCDEFG',3)
    ------
    ABC
    SELECT RIGHT('ABCDEFG',3)
    ------
    EFG
    
    --4.LEN 函数:返回字符串中的字符数
    SELECT LEN(N'ABCDE ')
    -----------
    5
    
    --5.DATALENGTH 函数:返回字符串中的字节数
    SELECT DATALENGTH(N'ABCDE ')
    -----------
    12
    
    --两者另外一个区别就上LEN删除尾随的空格符,DATALENGTH不会
    
    --6.CHARINDEX 函数:返回子字符串在字符串中第一次出现的位置
    SELECT CHARINDEX('w',N'hello world')
    -----------
    7
    
    --7.PATINDEX 函数:返回子字符串在字符串中第一次出现的位置
    SELECT PATINDEX('%[0-9]%',N'abcd1234efgh')
    -----------
    5
    
    --8.REPLACE 函数:使用另一个字符串替换出现的所有子字符串
    SELECT REPLACE('1-a 2-b','-',':')
    ------------------------------
    1:a 2:b
    
    --9.REPLICATE 函数:按照指定的次数,复制指定次数的字符串
    SELECT REPLICATE('abcd ',3)
    ---------------
    abcd abcd abcd 
    
    --10.STUFF 函数:从字符串中移除指定数量的字符,并插入一个替代的新子字符串
    SELECT STUFF('xyz ',2,1,'abc')
    ------
    xabcz 
    
    --11.UPPER和LOWER 函数:将一个字符串转换成大写或小写
    SELECT UPPER('xyzs ')
    ----------
    XYZS 
    
    SELECT LOWER('ABCD ')
    ----------
    abcd 
    
    --12.RTRIM和LTRIM 函数:删除字符串右边空格符,和删除字符串左边空格符
    SELECT RTRIM(' ABCD ')
    ------
     ABCD
    
    SELECT LTRIM(' ABCD ')
    ------
    ABCD 
    
    --13.RTRIM和LTRIM 函数:删除字符串右边空格符,和删除字符串左边空格符
    SELECT RTRIM(' ABCD ')
    ------
     ABCD
    
    SELECT LTRIM(' ABCD ')
    ------
    ABCD 
    
    --14-1.GETDATE 函数:当前日期和时间
    SELECT GETDATE();
    -----------------------
    2018-01-04 22:25:14.543
    
    --14-2.CURRENT_TIMESTAMP 函数:等同于GETDATE,但是遵从ANSI SQL
    SELECT CURRENT_TIMESTAMP;
    -----------------------
    2018-01-04 22:25:53.510
    
    --14-3.GETUTCDATE 函数:当前UTC日期和时间(通用协调时间)
    SELECT GETUTCDATE();
    -----------------------
    2018-01-04 14:25:53.510
    
    --14-4.SYSDATETIME 函数:当前日期和时间
    SELECT SYSDATETIME();
    ----------------------
    2018-01-04 22:25:53.51
    
    --14-5.SYSUTCDATETIME 函数:当前UTC日期和时间(通用协调时间)
    SELECT SYSUTCDATETIME();
    ----------------------
    2018-01-04 14:26:56.56
    
    --14-6.SYSDATETIMEOFFSET 函数:包含时区偏移量的当前日期时间
    SELECT SYSDATETIMEOFFSET();
    ----------------------------------
    2018-01-04 22:26:56.5667693 +08:00
    
    --15.CAST、CONVERT、PARSE 函数:日期时间日期时间转换函数
    SELECT CAST('20180104' AS DATETIME);
    SELECT CONVERT(DATETIME,'20180104');
    SELECT PARSE('20180104' AS DATETIME); --SQL SERVER 2008版本不支持
    -----------------------
    2018-01-04 00:00:00.000
    
    --SQL SERVER 2012才支持TRY_CAST、TRY_CONVERT、TRY_PARSE
    
    --16.SWITCHOFFSET 函数:将DATETIMEOFFSET值调整为指定的时区
    SELECT SYSDATETIMEOFFSET();
    ----------------------------------
    2018-01-04 22:27:38.5611713 +08:00
    
    SELECT SWITCHOFFSET(SYSDATETIMEOFFSET(),'-03:00');
    ----------------------------------
    2018-01-04 11:27:38.5611713 -03:00
    
    SELECT SWITCHOFFSET('20:00:00',10);
    ----------------------------------
    1900-01-01 20:10:00.0000000 +00:10
    
    SELECT SWITCHOFFSET('20180104',100);
    ----------------------------------
    2018-01-04 01:40:00.0000000 +01:40
    
    --17.DATEADD 函数:为指定日期时间增加指定输入的年/月/日/时/分/秒等
    SELECT DATEADD(YEAR,1,'20180104');
    -----------------------
    2019-01-04 00:00:00.000
    
    --18.DATEDIFF 函数:获得两个日期时间值之间的差异,第一个参数可以是年/月/日/时/分/秒等
    SELECT DATEDIFF(DAY,'20170101','20170111');
    -----------
    10
    
    --19.DATEPART 函数:返回一个表示所请求日期时间部分的整数
    SELECT DATEPART(YEAR,'20170101');
    -----------
    2017
    
    --20.YEAR、MONTH、DAY 函数:取日期中的 年、月、日
    SELECT YEAR('20170101');
    -----------
    2017
    
    SELECT MONTH('20170101');
    -----------
    1
    
    SELECT DAY('20170101');
    -----------
    1
    
    --21.DATENAME 函数:取日期中的 年、月、日字符串(根据会话语言决定)
    SELECT DATENAME(MONTH,'20170101');
    ------------------------------
    01
    
    --21.ISDATE 函数:判断字符串是否能转换成日期格式,可以转换返回1,不可以转换返回0
    SELECT ISDATE('20170101');
    -----------
    1
    
    SELECT ISDATE('201701011');
    -----------
    0

    纯属个人笔记,如有问题大家可以一起沟通。

  • 相关阅读:
    小程序行内点击事件冲突解决
    小程序带参返回刷新主页面
    小程序时间选择器(精确到秒)
    Bootstrap-Table事件和方法
    JS 解决txt文件直接打开而不是下载
    Bootstrap-Table进阶篇
    Bootstrap-Table入门篇
    Angular+SSM+Ajax的简单购物车实例
    Angular实现简单购物车
    K3BOS单据获取单据体行数
  • 原文地址:https://www.cnblogs.com/tiaoma888/p/8196389.html
Copyright © 2020-2023  润新知