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

时间:2021-07-06 22:31:25
--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('' AS DATETIME);
SELECT CONVERT(DATETIME,'');
SELECT PARSE('' 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('',100);
----------------------------------
2018-01-04 01:40:00.0000000 +01:40 --17.DATEADD 函数:为指定日期时间增加指定输入的年/月/日/时/分/秒等
SELECT DATEADD(YEAR,1,'');
-----------------------
2019-01-04 00:00:00.000 --18.DATEDIFF 函数:获得两个日期时间值之间的差异,第一个参数可以是年/月/日/时/分/秒等
SELECT DATEDIFF(DAY,'','');
-----------
10 --19.DATEPART 函数:返回一个表示所请求日期时间部分的整数
SELECT DATEPART(YEAR,'');
-----------
2017 --20.YEAR、MONTH、DAY 函数:取日期中的 年、月、日
SELECT YEAR('');
-----------
2017 SELECT MONTH('');
-----------
1 SELECT DAY('');
-----------
1 --21.DATENAME 函数:取日期中的 年、月、日字符串(根据会话语言决定)
SELECT DATENAME(MONTH,'');
------------------------------
01 --21.ISDATE 函数:判断字符串是否能转换成日期格式,可以转换返回1,不可以转换返回0
SELECT ISDATE('');
-----------
1 SELECT ISDATE('');
-----------
0

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