0


【SQL Server】超详细SQLServer日期转换、字符串、数学、聚合等常用函数大全(最新版)

文章目录

一、字符串函数

1、获取uuid

SELECTNEWID();--9573749E-5942-4178-907C-6B39E74EDAA0--( 无参数,返回一个GUID(全局唯一表示符)值 )

2、字符串截取

SELECTLEN('java');--4--(LEN(expression) 返回字符串包含字符数)SELECTSUBSTRING('java',1,2);-- ja 
--(SUBSTRING(expression, start, length) 截取字符串expression,下标从start开始,截取长度为length)SELECTRIGHT('java',3);-- ava 
--(RIGHT(char_expr,int_expr) 返回字符串char_expr右边int_expr个字符)SELECTLEFT('java',2);-- ja 
--(LEFT(char_expr,int_expr) 返回字符串char_expr左边边int_expr个字符)

3、字符串拼接

SELECTCONCAT('ja','va');-- java (CONCAT(char1,char2,...) 用于字符串拼接)SELECT'ja'+'va';-- java (+ 也用于字符串拼接)SELECT'ja'+SPACE(2)+'va';-- ja  va (SPACE(int_expr) 生成int_expr个空格)

4、字符串去空格

SELECTTRIM('j' from 'java');--ava(去除字符串两边指定的字符,默认为空格)SELECTLTRIM(' java');-- java (LTRIM(char_expr) 去除字符串char_expr左边的空格)SELECTRTRIM('java ');-- java (RTRIM(char_expr) 去除字符串char_expr右边的空格)

5、大小写转换

SELECTUPPER('java')-- java (UPPER(char_expr) char_expr转为大写)SELECTLOWER('JAVA');-- java (LOWER(char_expr) char_expr转为小写)

6、格式化数字为字符串

SELECTSTR(123.454,10,2);--[123.46](不足10位前面补充空格,,精度会进行四舍五入)--STR(float_expression [,length [,decimal]]) 把数值型数据转换为字符型数据
--length(可选) 指定返回的字符串的长度,如果没有提供length,默认值为10--decimal(可选) 指定返回的小数位数,如果没有提供decimal,默认值为10-- 当 length 或者 decimal 为负值时,返回NULL-- 当 length 小于小数点左边(包括符号位)的位数时,返回length 个*-- 先服从length ,再取decimal ;-- 当返回的字符串位数小于length ,左边补足空格

7、字符串替换、转换

select REPLACE('java','a','b');-- jbvb (REPLACE(expression, find_string, replace_with) 在字符串中替换所有出现的指定子串)

select REPLICATE('ja',3);-- jajaja (REPLICATE(char_expr,int_expr) 复制字符串int_expr次)

select REVERSE('java');-- avaj (REVERSE(char_expr) 反转字符串)

select STUFF('java',1,2,'cc');-- ccva (STUFF(char_expr1,start,length,char_expr2))-- 将字符串char_expr1中的从start开始的length个字符用char_expr2代替,start下标从1开始
--ASCII值与字符转换

select ASCII('A');--65(ASCII(char) 取ascii码)

select CHAR(97);-- a (CHAR(ascii) 将ASCII 码转换为字符)

8、查找与定位

select CHARINDEX('a','java');--2(CHARINDEX(char_expr,expression) 返回char_expr的起始位置,下标从1开始)

select PATINDEX('%v%','java');--3(PATINDEX('%pattern%',expression) 返回指定模式的起始位置,否则为0)

9、ISNULL 判空取值

select ISNULL(null,'1');--1
select ISNULL('2','1');--2--(ISNULL(值1,值2) 如果值1不为NULL,则返回它的值;否则,在将任意表达式2的类型转换为值1的类型(如果这两个类型不同)后,返回值2的值 )

二、日期时间函数

1、获取当前日期和时间

select GETDATE();--2024-03-1615:38:54.403(返回日期)

2、提取日期部分

select DAY(GETDATE());--16(取出天)

select MONTH(GETDATE());--3(取出月)

select YEAR(GETDATE());--2024(取出年)

3、DATENAME(datepart,date_expr) 函数,返回指定日期的指定部分,返回字符串。获取年、月、日、星期、周数、时、分、秒

SELECTDATENAME(YEAR,GETDATE());--2024(年)SELECTDATENAME(MONTH,GETDATE());--March(月)SELECTDATENAME(DAY,GETDATE());--16(日)SELECTDATENAME(HOUR,GETDATE());--15(时)SELECTDATENAME(MINUTE,GETDATE());--53(分)SELECTDATENAME(SECOND,GETDATE());--3(秒)SELECTDATENAME(WEEKDAY,GETDATE());--Saturday(星期)SELECTDATENAME(QUARTER,GETDATE());--1(第几季度)SELECTDATENAME(WEEK,GETDATE());--11(一年中的第几周)SELECTDATENAME(DAYOFYEAR,GETDATE());--76 (一年中的第几天)

4、DATEPART(datepart,date_expr) 函数,用于返回日期/时间的单独部分,返回整数。获取年、月、日、小时、分钟

SELECTDATEPART(YY,GETDATE());--2024(年)SELECTDATEPART(mm,GETDATE());--3(月)SELECTDATEPART(dd,GETDATE());--16(日)

5、DATEDIFF(datepart,date_expr1.dateexpr2) 函数,返回两个指定日期之间间隔的时间

SELECTDATEDIFF(YEAR,'2023-01-01' ,GETDATE());--1(间隔时间/年)SELECTDATEDIFF(MONTH,'2024-01-01' ,GETDATE());--2(间隔时间/月)SELECTDATEDIFF(DAY,'2024-01-01',GETDATE());--75(间隔时间/天)SELECTDATEDIFF(DAY,'2024-01-01','2024-01-31');--30(间隔时间/天)

6、DATEADD(datepart,number,date_expr)函数,在日期中添加或减去指定的时间间隔。年、月、日 加上 number

SELECTDATEADD(YEAR,1,GETDATE());--2025-03-1616:06:46.910(明年今日)SELECTDATEADD(YEAR,-1,GETDATE());--2023-03-1616:06:46.910(去年今日)SELECTDATEADD(MONTH,+1,GETDATE());--2024-04-1616:06:46.910(下月今日)SELECTDATEADD(DAY,30,GETDATE());--2024-04-1516:06:46.910(XX天后)

7、EOMONTH(date_expr)函数,返回包含指定日期所在月份的最后一天

SELECTEOMONTH( '2024-01-01' );--2024-01-31(当月月末日期)SELECTEOMONTH(GETDATE());--2024-03-31(当月月末日期)

8、ISDATE 判断是否为有效日期

select ISDATE(GETDATE());--1
select ISDATE('2014-03-16');--1
select ISDATE('201');--0--(ISDATE(值1) 确定输入值1是否为有效日期或可转成有效的日期,是1,不是0)

9、DATEFROMPARTS(year, month, day) 根据提供的年、月、日创建一个新的日期

select DATEFROMPARTS(2024,3,16);--2024-03-16--(DATEFROMPARTS(year, month, day) 根据提供的年、月、日创建一个新的日期)

附录1:datepart格式表格

datepart格式描述yy, yyyy, year年 (1753-9999 年)qq, q, quarter季度 (1-4 季度)mm, m, month月份 (1-12 月)dy, y年中的日 (1-366 日)dd, d, day日 (1-31 日)wk,ww ,week周 (1-54 周)dw, w, weekend星期 (1-7 周几)hh, hour小时 (0-23 小时)mi, n, minute分钟 (0-59 分钟)ss, s, second秒 (0-59 秒)ms毫秒 (0-999 毫秒)

三、CONVERT类型转换函数

CONVERT(数据类型[(长度)],表达式[,样式]) – 将一种数据类型的表达式显式转换为另一种数据类型的表达式;

select CONVERT(VARCHAR(19),GETDATE());--Mar1720244:46AM          

select CONVERT(VARCHAR(19),GETDATE(),20);--2024-03-1704:47:11 

select CONVERT(VARCHAR(19),GETDATE(),23);--2024-03-17  

select CONVERT(VARCHAR(24),GETDATE(),25);--2024-03-1704:47:31.040

附录2:日期格式表格

格式描述100 或者 0mon dd yyyy hh:miAM (或者 PM)101mm/dd/yy102yy.mm.dd103dd/mm/yy104dd.mm.yy105dd-mm-yy106dd mon yy107Mon dd, yy108hh:mm:ss109 或者 9mon dd yyyy hh:mi:ss:mmmAM(或者 PM)110mm-dd-yy111yy/mm/dd112yymmdd113 或者 13dd mon yyyy hh:mm:ss:mmm(24h)114hh:mi:ss:mmm(24h)23yyyy-mm-dd120 或者 20yyyy-mm-dd hh:mi:ss(24h)121 或者 21yyyy-mm-dd hh:mi:ss.mmm(24h)126yyyy-mm-ddThh:mm:ss.mmm(没有空格)130dd mon yyyy hh:mi:ss:mmmAM131dd/mm/yy hh:mi:ss:mmmAM

四、CAST数据类型转换函数

--CAST函数用于将某种数据类型转换为另一种数据类型
--CAST(字段名 as 转换的类型 )SELECTCAST(10.2748 as int);--10(取整)SELECTCAST(12345.123 as float);--12345(取浮点数)SELECTCAST(12345.123 as char);--12345.123(转为字符串)SELECTCAST('2023-12-1815:41:25' as char(16));--2023-12-1815:41(字符串截取)SELECTCAST(NEWID()ASvarchar(36));--DEEDAEB1-B32D-40D5-AE02-AFF972161B12(随机字符串)

五、数学函数


select ABS(-123);--123(ABS(numeric_expr) 求绝对值 )

select ROUND(123.456,2);--123.460(ROUND(numeric_expr,int_expr) 安int_expr规定的精度四舍五入

select CEILING(123.45);--124(CEILING(numeric_expr) 取大于等于指定值的最小整数 )

select FLOOR(123.45);--123(FLOOR(numeric_expr) 小于等于指定值得最大整数 )

select EXP(3);--7.38905609893065(EXP(float_expr) 取指数 )

select PI();--3.14159265358979(取Π值)

select POWER(2,2);--4(POWER(numeric_expr,power) 返回power次方 )

select RAND(10);--0.713759689954247(RAND([int_expr]) 随机数产生器 )

select SIGN(-10);---1(SIGN(int_expr) 根据正数,0,负数,,返回+1,0,-1)

select SQRT(4);--2(SQRT(float_expr) 平方根 )

select ISNUMERIC(1);--1
select ISNUMERIC('1');--1
select ISNUMERIC('a');--0--(ISNUMERIC(值1) 判断值1是否为数值类型或者是否可以转换成数值)

六、聚合函数

count()-- 返回组中的总条数,count(*)返回组中所有条数,包括NULL值和重复值项,如果抒写表达式,则忽略空值,表达式为任意表达式。

max()-- 返回组中的最大值,空值将被忽略,表达式为数值表达式,字符串表达式,日期。

min()-- 返回组中的最小值,空值将被忽略,表达式为数值表达式,字符串表达式,日期。

sum()-- 返回组中所有值的和,空值将被忽略,表达式为数据表达式。

avg()-- 返回组中所有值的平均值,空值将被忽略,表达式为数据表达式。

参考文献:
https://www.cnblogs.com/long6286/p/12671308.html
https://blog.csdn.net/leanne50y/article/details/134974111

希望对小伙伴们有所帮助,完结,撒花❀❀


本文转载自: https://blog.csdn.net/ilywq/article/details/136779370
版权归原作者 T-猿小白 所有, 如有侵权,请联系我们删除。

“【SQL Server】超详细SQLServer日期转换、字符串、数学、聚合等常用函数大全(最新版)”的评论:

还没有评论