阿里云-DataWorks- ODPS SQL开发3-日期与字符、数学运算、聚合函数函数

简介: 阿里云-DataWorks- ODPS SQL开发3 本文主要讲解日常大量会接触到的一些常用的日期与字符、数学运算、聚合函数函数。

前言

本文主要讲解日常大量会接触到的一些常用的日期与字符、数学运算、聚合函数函数

一、日期函数

GETDATE函数: 获取当前系统时间
SELECT GETDATE();
执行结果: 2022-12-15 20:33:23

DATEADD函数: 日期增减
SELECT DATEADD(GETDATE(),1,'dd');
执行结果: 2021-06-28 20:34:17

SELECT DATEADD(GETDATE(),-1,'dd');

执行结果: 2021-06-26 20:34:30

DATEDIFF函数: 计算返回时间差值

SELECT DATEDIFF('2022-12-15 20:33:23','2022-12-13 20:33:23','dd');
执行结果: 2
SELECT DATEDIFF('2022-12-15 20:33:23','2022-11-15 20:33:23','mm');
执行结果: 1
SELECT DATEDIFF('2022-12-15 20:33:23','2021-12-15 20:33:23','yyyy');
执行结果: 1
SELECT DATEDIFF('2022-12-15 20:33:23','2022-12-15 16:33:23','hh');
执行结果: 4
SELECT DATEDIFF('2022-12-15 20:33:23','2022-12-15 20:10:23','mi');
执行结果: 23
SELECT DATEDIFF('2022-12-15 20:33:23','2022-12-15 20:33:10','ss');
执行结果: 13

ADD_MONTHS函数: 计算月
SELECT ADD_MONTHS('2021-6-27',-1);
执行结果: 2022-11-15

DATEPART函数: 提取日期中part指定的部分
SELECT DATEPART('2022-12-15 20:33:23','yyyy');
执行结果: 2021

SELECT DATEPART('2022-12-15 20:33:23','mm');
执行结果: 6

SELECT DATEPART('2022-12-15 20:33:23','dd');
执行结果: 27

SELECT DATEPART('2022-12-15 20:33:23','hh');
执行结果: 19

SELECT DATEPART('2022-12-15 20:33:23','mi');
执行结果: 33

SELECT DATEPART('2022-12-15 20:33:23','ss');
执行结果: 23

DATETRUNC函数: 返回截取后的日期值
SELECT DATETRUNC('2022-12-15 20:33:23','yyyy');
执行结果: 2021-01-01 00:00:00

SELECT DATETRUNC('2022-12-15 20:33:23','mm');
执行结果: 2021-06-01 00:00:00

SELECT DATETRUNC('2022-12-15 20:33:23','dd');
执行结果: 2022-12-15 00:00:00

SELECT DATETRUNC('2022-12-15 20:33:23','hh');
执行结果: 2022-12-15 20:00:00

SELECT DATETRUNC('2022-12-15 20:33:23','mi');
执行结果: 2022-12-15 20:33:00

SELECT DATETRUNC('2022-12-15 20:33:23','ss');
执行结果: 2022-12-15 20:33:23

UNIX_TIMESTAMP函数: 将日期转化为整型的unix格式的日期时间值
SELECT UNIX_TIMESTAMP();
执行结果: 1624795597

FROM_UNIXTIME函数: 将数字型的unix 时间日期值转为DE日期值
SELECT FROM_UNIXTIME(1624795597);
执行结果: 2022-12-15 20:06:37

ISDATE函数: 判断一个日期字符串能否根据对应的格式串转换为一个日期值
SELECT ISDATE('2022-12-15 20:33:23','yyyy-mm-dd hh:mi:ss');
执行结果: true

LASTDAY函数: 取一个月的最后一天,截取到天
SELECT LASTDAY('2022-12-15 20:33:23');
执行结果: 2021-06-30 00:00:00

TO_DATE函数: 将一个字符串按照FORMAT指定的格式转成日期值
SELECT TO_DATE('2022-12-15 20:33:23','yyyy-mm-dd hh:mi:ss');
执行结果: 2022-12-15 20:13:41

TO_CHAR函数: 日期类型按照format指定的格式转成字符串
SELECT TO_CHAR(GETDATE(),'yyyy-mm-dd hh:mi:ss');
执行结果: 2022-12-15 20:17:26

WEEKDAY函数: 返回一个日期值是星期几
SELECT WEEKDAY(GETDATE());
执行结果: 6
星期一:0
星期二:1
星期三:2
星期四:3
星期五:4
星期六:5
星期天:6

WEEKOFYEAR函数: 返回一个日期位于那一年的第几周
SELECT WEEKOFYEAR(GETDATE());
执行结果: 25

二、数学运算函数

ABS函数: 绝对值函数
SELECT ABS(-1.567);
执行结果: 1.567

ACOS函数: 反余弦函数
SELECT ACOS(0.789);
执行结果: 0.6616166568777674

ASIN函数: 反正弦函数
SELECT ASIN(0.789);
执行结果: 0.9091796699171293

ATAN函数: 反正切函数
SELECT ATAN(0.789);
执行结果: 0.6679975427240679

CONV函数: 进制转换函数
SELECT CONV(100,10,2);
执行结果: 1100100

SELECT CONV(10101100,2,10);
执行结果: 172

COS函数: 余弦函数,输入为弧度值
SELECT COS(0.789);
执行结果: 0.7045553168836329

COSH函数: 双曲余弦函数
SELECT COSH(0.789);
执行结果: 1.3277464991182242

COT函数: 余切函数
SELECT COT(0.789);
执行结果: 0.992822149200644

EXP函数:指数函数(以e=2.718281828459045为底数)
SELECT EXP(3);
执行结果: 20.085536923187668

RAND函数: 随机数函数,返回double类型的随机数,返回值区间是的0~1
SELECT RAND(99);
执行结果: 0.9610280566667337

ROUND函数: 四舍五入到指定小数点位置
SELECT ROUND(0.789,2);
执行结果: 0.79

FLOOR函数: 向下取整
SELECT FLOOR(9.789);

执行结果: 9

SIN函数: 正弦函数
SELECT SIN(0.789);
执行结果: 0.7096490720426566

SINH函数: 双曲正弦函数
SELECT SINH(0.789);
执行结果: 0.8734476320425288

SQRT函数: 计算平方根
SELECT SQRT(9);
执行结果: 3.0

TAN函数: 正切函数
SELECT TAN(0.789);
执行结果: 1.0072297448290564

TANH函数: 双曲正切函数
SELECT TANH(0.789);
执行结果: 0.65784216537012

TRUNC函数: 截取函数,将输入值截取到指定小数点位置
SELECT TRUNC(987.789,1);
执行结果: 987.7

LN函数: 返回number的自然对数
SELECT LN(20.085536923187668);
执行结果: 3.0

LOG函数: 对数函数
SELECT LOG(2,3);
执行结果: SELECT LOG(2,3);

POW函数: 返回x的y次方,即x^y
SELECT POW(2,3);
执行结果: 8.0

CEIL函数: 向上取整
SELECT CEIL(9.789);
执行结果: 10

三、字符串处理函数

CHR函数: 将给定ASCII转换成字符,参数范围是0~255
SELECT CHR(90);
执行结果: Z

CONCAT函数: 字符串连接函数,将参数中的所有字符串连接在一起的结果
SELECT CONCAT('厦门在','福建');
执行结果: 厦门在福建

IN函数: 查看key是否在给定列表中出现
SELECT 99 IN(9,99,999,9999,99999);
执行结果: true

INSTR函数: 计算一个子串在字符串中的位置
SELECT INSTR('崇明在中国的上海','福建');

LENGTH函数: 返回一个字符串的长度
SELECT LENGTH('崇明在中国的上海');

LENGTHB函数: 返回一个字符串的以字节为单位的长度
SELECT LENGTHB('崇明在中国的上海');

MD5函数: 输入字符串的md5值
SELECT MD5('崇明在中国的上海');
执行结果: ac17f49e2f2e778634dee072e1dfc4ac

SPLIT_PART函数: 拆分字符串,返回指定的部分
SELECT SPLIT_PART('福州;厦门;泉州',';',2);
执行结果: 厦门

TO_CHAR函数: 返回对应值的字符串

SELECT TO_CHAR(99.98);

执行结果: 99.98

SUBSTR函数: 返回字符串string1从start_position开始长度为length的子串
SELECT SUBSTR('崇明在中国的上海',7,2);
执行结果: 上海

TOLOWER函数: 字符串转换为小写,输入字符串对应的小写字符串

SELECT TOLOWER('abcDEFGH');
执行结果: abcdefgh

TOUPPER函数: 字符串转换为大写,输入字符串对应的大写字符串
SELECT TOUPPER('abcDEFGH');
执行结果: ABCDEFGH

TRIM函数: 截取两端空格,将输入字符串去除左右空格
SELECT TRIM(' 崇明在中国的上海 ');
执行结果: 崇明在中国的上海

WM_CONCAT函数: 用指定的spearator做分隔符,做字符串类型的连接操作
SELECT WM_CONCAT(';',tt.id) as result
FROM NOTE_INFO_TEST tt
WHERE tt.area = '340000';
执行结果: 2021002;2021004;2021001;2021005;2021003

四、聚合函数

AVG函数: 计算平均值
SELECT AVG(tt.money) AS RESULT FROM NOTE_INFO_TEST tt;

COUNT函数: 计算数目
SELECT COUNT(1) AS RESULT FROM NOTE_INFO_TEST tt;

MAX函数: 计算最大值
SELECT MAX(tt.money) AS RESULT FROM NOTE_INFO_TEST tt;

MEDIAN函数: 中位数
SELECT MEDIAN(tt.money) AS RESULT FROM NOTE_INFO_TEST tt;

MIN函数: 计算最小值
SELECT MIN(tt.money) AS RESULT FROM NOTE_INFO_TEST tt;

SUM函数: 求和
SELECT SUM(tt.money) AS RESULT FROM NOTE_INFO_TEST tt;

相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
相关文章
SQL中如何将一列中的值显示出字符指定位置与指定长度
在对比系统生日与身份证号时,如何提取特定位置的值?例如,从身份证第7位开始取8位数字,可用SQL的`SUBSTRING`函数实现。
|
SQL Oracle 关系型数据库
解决大小写、保留字与特殊字符问题!Oracle双引号在SQL中的特殊应用
在Oracle数据库开发中,双引号的使用是一个重要但易被忽视的细节。本文全面解析了双引号在SQL中的特殊应用场景,包括解决标识符与保留字冲突、强制保留大小写、支持特殊字符和数字开头标识符等。同时提供了最佳实践建议,帮助开发者规避常见错误,提高代码可维护性和效率。
821 6
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之ODPS数据怎么Merge到MySQL数据库
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
585 1
|
SQL 数据采集 存储
SQL server 特殊字符"\u0000"处理
【9月更文挑战第12天】在 SQL Server 中,空字符 `\u0000` 可能导致数据处理问题。解决方法包括:1) 查找包含该字符的数据,使用 `LIKE '%\u0000%'` 进行查询;2) 替换该字符,使用 `REPLACE` 函数将其替换为空或其他字符;3) 在应用程序中验证和清理输入数据,防止其插入数据库;4) 注意数据类型、索引性能及数据库设计,确保数据质量和可靠性。
1155 0
|
SQL 关系型数据库 数据处理
|
SQL 数据处理 数据库
SQL正则表达式应用:文本数据处理的强大工具——深入探讨数据验证、模式搜索、字符替换等核心功能及性能优化和兼容性问题
【8月更文挑战第31天】SQL正则表达式是数据库管理和应用开发中处理文本数据的强大工具,支持数据验证、模式搜索和字符替换等功能。本文通过问答形式介绍了其基本概念、使用方法及注意事项,帮助读者掌握这一重要技能,提升文本数据处理效率。尽管功能强大,但在不同数据库系统中可能存在兼容性问题,需谨慎使用以优化性能。
525 0
|
SQL DataWorks 安全
DataWorks产品使用合集之怎么跨项目移动sql任务
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
分布式计算 DataWorks 数据管理
DataWorks操作报错合集之写入ODPS目的表时遇到脏数据报错,该怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
833 0
|
分布式计算 DataWorks NoSQL
DataWorks操作报错合集之遇到报错:failed: ODPS-0130071:[1,36] Semantic analysis exception,该怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
898 0
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")