SQL常用函数

SQL常用函数

1.聚合函数

聚合函数对一个组值执行计算,并返回单个值。除了 COUNT 以外,聚合函数都会忽略空置。聚合函数经常与 SELECT 语句的 GROUP BY字句一起使用。常用的聚合函数包括 AVG(平均值)、COUNT(计数)、MAX(最大值)、MIN(最小值)、SUM(求和)。

select COUNT(*)  from Customers
select Country,COUNT(*) from Customers group by Country
select min(num)  from Customers
select max(num)  from Customers

2.转换函数

将一种数据类型转换为另外一种(CONVERT 和 CAST)

select convert(varchar(10),depnumber) as depnumber,depname from dept
select cast(depnumber as varchar(10)) as depnumber,depname from dept

两个函数都是用来将一种数据类型表达式转换为另一种数据类型的表达式,两者提供功能是一致的,但表达方式不同,在时间转换中一般用到convert,对比cast多加了一个style,可以转化成不同时间格式。

3.日期函数

日期函数:处理日期和时间
1)GETDATE() 当前系统日期
2)DATEADD(日期部分,number,date) 返回带有指定数字(number)的日期(date),将该数字添加到指定日期部分
3)DATEDIFF(日期部分,date1,date2)返回两个日期中指定的日期部分之间的差值
4)DATENAME(日期部分,date) 返回日期中日期部分的字符串形式 (字符串)
5)DATEPART(日期部分,date) 返回日期中指定的日期部分的整数形式(整数)
6)YEAR(date) 返回指定日期的年份数值
7)MONTH(date) 返回指定日期的月份数值
8)DAY(date) 返回指定日期的天数值

函数 作用
GETDATE 返回当前计算机的日期和时间
DATENAME 返回表示指定日期的指定datepart 的字符串
DATEADD 通过加一个时间间隔指定date的指定datepart相加,返回一个新的datepart值
DATEDIFF 返回两个指定日期之间所夸的日期或者时间datepart边界的数目
DATEPART 返回表示指定的date和指定的datepart 的整数
DAY 返回表示指定的date中的“日”部分的整数
MONTH 返回表示指定的date中的“月”部分的整数
YEAR 返回表示指定的date中的“年”部分的整数

sql中日期的表示方法及有效范围:

SQL常用函数_第1张图片

mysql中常用函数与之还有区别,详解请看:
https://wenku.baidu.com/view/5a761574f31dc281e53a580216fc700abb685285.html

MySQL常用日期时间函数:
mql常用日期

1. date函数 返回当前日期
CURDATE() 、CURRENT_DATE()、CURRENT_DATE()

2. time函数 返回当前时间
CURTIME() 、CURRENT_TIME()、CURRENT_TIME()

3. 日期和时间函数 返回当前日期和时间
CURRENT_TIMESTAMP()、CURRENT_TIMESTAMP、LOCALTIME()、LOCALTIME、 LOCALTIMESTAMP()、 LOCALTIMESTAMP、 NOW()、SYSDATE()

在这里面:
mysql中有个区别:
now()和systime()
now()返回执行当前sql语句的时间
systime()返回执行当前函数的时间 且它可以传入一个参数(fsp表示是否包括小数秒精度 0-6位)

select SYSDATE(),SYSDATE(6);
#结果  2022=05-23 13:21:24   2022=05-23 13:21:24.948574

4. 日期和时间的比较
下面的三个语句的输出一样,mysql中可以直接用字符串进行比较时间大小,只要日期格式正确

SQL常用函数_第2张图片

5. 日期和时间运算
DATE_ADD()函数:日期时间增加减少
函数汇总INTERVAL参数后面的值为正表示日期时间增加,为负表示日期时间减少

SQL常用函数_第3张图片

DATEDIFF():计算两个日期差

SQL常用函数_第4张图片

TIMEDIFF():计算两个时间差

SQL常用函数_第5张图片

6. 日期和时间的格式化
DATE_FORMAT(date,format):
常用:DATE_FORMAT(SYSDATE(),'%Y-%m-%d %H:%i:%s)
%p:PM 或AM;

%r:HH:mm:ss PM形式时间;

%W:周,周名,如Tuesday;

%w:周,0-6,0为周日;

%j:当前日期所在一年中的天数,3位(001-366)

SQL常用函数_第6张图片

SQL常用函数_第7张图片

SQL常用函数_第8张图片

SQL常用函数_第9张图片

DATE_FORMAT(date,format)和STR_TO_DATE(str,format)函数:

DATE_FORMAT(date,format):将数据库中的date数据格式化为String类型

STR_TO_DATE(str,format):将指定的时间格式的字符串按照格式转换为DATETIME类型的值。str要与format的格式保持一致,否则会报错。

在这里插入图片描述
第一个返回值是String类型,第二个返回值是datetime类型

7. 年、周、日
YEAR()、MONTH()、WEEK()、DAY()

4.数学函数

执行算术运算(对数字值执行代数运算)

1. ABS(num_expr) 返回数值表达式的绝对值。
2. ACOS(float_expr) 返回角(以弧度表示),它的余弦值近似于指定的浮点表达式。
3. ASIN(float_expr) 返回角(以弧度表示),它的正弦值近似于指定的浮点表达式。
4. ATAN(float_expr) 返回角(以弧度表示),它的正切值近似于指定的浮点表达式。
5. ATN2(float_expr1, float_expr2) 返回角(以弧度表示),它的正切值在两个近似的浮点表达式之间。
6. CEILING(num_expr) 返回大于或等于数值表达式的最小整数。
7. COS(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的余弦三角函数的值。
8. COT(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的余切三角函数的值。
9. DEGREES(num_expr)返回数值表达式表示的弧度值对应的度值。
10. EXP(float_expr) 根据指定的近似浮点表达式,返回指数值。
11. FLOOR(num_expr) 返回小于或等于数值表达式的最大整数
12. LOG(float_expr) 根据指定的近似浮点表达式,返回自然对数值。
13. LOG10(float_expr) 根据指定的近似浮点表达式,返回以为底的对数。
14. PI() 返回常量值.141592653589793
15. POWER(num_expr,y) 返回幂为y的数值表达式的值。
16. RADIANS(num_expr) 返回数值表达式表示的度值对应的弧度值。
17. RAND([seed]) 随机返回的到之间的近似浮点值,可以对seed指定为整数表达式(可选)。
18. ROUND(num_expr,length) 对数值表达式截取指定的整数长度,返回四舍五入后的值。
19. SIGN(num_expr) 对正数执行+1操作,对负数和零执行-1操作。
20. SIN(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的正弦三角函数的值。
21. SQUARE(float_expr) 返回浮点表达式的平均值。
22. SQRT(float_expr) 返回指定的近似浮点表达式的平方根。
23. TAN(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的正切三角函数的值。

5.字符串函数

对字符串、二进制数据或表达式执行操作(可用于binary 和varbinary数据类型列,但主要用于char和varchar数据类型

1. Expr1+expr2 返回两个表达式的组合形式的字符串。
2. ASCII(char_expr) 返回表达式最左边字符的ASCⅡ代码值。
3. CHAR(int_expr) 返回到之间的整数表达式的ASCⅡ字符值。如果输入的值不在有效范围内,则返回NULL。
4. CHARINDEX(‘pattern’,char_expr) 返回字符表达式中指定模式的起始位置。
5. DIFFERENCE(char_expr1,char_expr2) 根据比较两个字符表达式的相似度,返回到之间的值。表示匹配度最佳。
6. LEN(char_expr) 返回字符表达式的长度。
7. LOWER(char_expr) 将字符表达式全部转换为小写。
8. LTRIM(char_expr) 返回删除掉前面空格的字符表达式。
9. PATINDEX(‘%pattern%’,expr) 返回表达式中模式第一次出现的起始位置。返回表示不存在模式形式。
10. REPLICATE(char_expr,int_expr) 返回重复指定次数的字符表达式产生的字符串。
11. REVERSE(char_expr) 反转字符表达式。
12. RIGHT(char_expr,int_expr) 返回从字符表达式最右端起根据指定的字符个数得到的字符。
13. RTRIM(char_expr) 返回删除掉其后空格的字符表达式。
14. SOUNDEX(char_expr) 评估两个字符串的相似度后得到的位代码。
15. SPACE(int_expr) 返回包含指定空格数的字符串。
16. STR(float_expr[,length[,decimal]]) 返回浮点表达式的字符串表示法。
17. STUFF(char_expr1,start,length,char_expr2) 使用字符表达式替换字符表达式的一部分字符,从指定的位置开始替换指定的长度。
18. SUBSTRING(char_expr,start,length) 返回从字符表达式的指定位置开始,截取指定长度得到的字符集。
19. UPPER(char_expr) 将字符表达式全部转换为大写。

6.系统函数

从数据库返回在SQLSERVER中的值、对象或设置的特殊信息(用于返回元数据或配置设置)
1. COALESCE(expr1,expr2, xprN) 返回第一个非NULL表达式。
2. COL_LENGTH(‘table_name’,‘column_name’) 返回列的长度。
3. COL_NAME(table_id,column_id) 返回指定的表中的列名。
4. DATALENGTH(‘expr’) 返回任何数据类型的实际长度。
5. DB_ID([‘database_name’]) 返回数据库的标识号。
6. DB_NAME([database_id]) 返回数据库的名称。
7. GETANSINULL([‘database_name’]) 返回数据库的默认空性(Nullability)。
8. HOST_ID() 返回工作站的标识号。
9. HOST_NAME() 返回工作站的名称。
10. IDENT_INCR(‘table_or_view’) 有新的记录添加入到表中时计数加。
11. IDENT_SEED(‘table_or_view’) 返回标识列的起始编号。
12. INDEX_COL(‘table_name’,index_id,key_id) 返回索引的列名。
13. ISNULL(expr,value) 使用指定的值替换的NULL表达式。
14. NULLIF(expr1,expr2) Expr1与Expr2相等时,返回Null。
15. OBJECT_ID(‘obj_name’) 返回数据库对象标识号。
16. OBJECT_NAME(‘object_id’) 返回数据库对象名。
17. STATS_DATE(table_id,index_id) 返回上次更新指定索引的统计的日期。
18. SUSER_SID([‘login_name’]) 返回用户的登录标识号。
19. SUSER_ID([‘login_name’]) 返回用户的登录标识号。这个函数类似于SUSER_SID()函数,并且保留了向后的兼容性。
20. SUSER_SNAME([server_user_id]) 返回用户的登录标识号。
21. SUSER_NAME([server_user_id]) 返回用户的登录标识号。这个函数类似于SUSER_SNAME()函数,并且保留了向后的兼容性。
22. USER_ID(‘user_name’) 返回用户的数据库标识号。
23. USER_NAME([‘user_id’]) 返回用户的数据库名称。

7.文本和图像函数

对文本和图像数据执行操作(通常返回有关文本和图像数据所需的信息。文本和图像数据是以二进制格式的形式进行存储的)
1. TEXTPTR(col_name) 返回varbinary格式的文本指针值。对文本指针进行检查以确保它指向第一个文本页。
2. TEXTVALID(‘table_name.col_name’,text_ptr)检查给定的文本指针是否有效。返回表示有效,返回表示指针无效。

你可能感兴趣的:(sql,数据库)