hive—常用的日期函数

目录

1、current_date 当前日期

2、now() 或 current_timestamp() 当前时间

3、datediff(endDate, startDate) 计算日期相差天数

4、months_between(endDate, startDate) 日期相差月数

5、date_add(startDate, numDays) 日期加N天

6、date_sub(startDate, numDays) 日期减N天

7、add_months(startDate, numMonths) 日期加N月

8、last_day(date) 日期所在月份的最后一天

9、 next_day(startDate, dayOfWeek) 指定日期后的第一个星期几(星期参数为英文缩写)

10、from_unixtime:转化unix时间戳到当前时区的时间格式

11、unix_timestamp:转换到UNIX时间戳

12、to_date:返回时间中的年月日

13、year、month、day、hour、minute、second:返回时间的年、月、日、时、分、秒

14、weekofyear:返回指定日期所在一年中的星期号,范围为0到53

15、trunc:为指定元素而截去的日期值

16、date_trunc:

17、date_format:对时间日期进行格式化

18、dayofmonth:查询当月第几天、dayofweek:查询周几

19、next_day:取当前天的下一个周一

20、pmod(int a, int b):返回a除b的余数的绝对值

21、常用日期取数:

1、from_unixtime(unix_timestamp(,),)用法

2、当前周属于哪个月

3、当前周属于哪一周

4、生成连续的天表、小时表、分钟表

1)生成连续的天

2)生成连续小时

3)生成连续分钟

​编辑4)生成连续秒

5)生成连续月

6)生产今年内的连续月

5、时间和秒数互相转换

1)当前时间转换成秒数

2)秒数转换为时间(时分秒)

22、工作特殊日期取数(有一些为工作环境内置函数)

1)当月最后一天更新完整月份时间范围的数据

2)上月最后一个交易日

3)本月第一个交易日

4)如果今天不是本月自然日最后一天,则取上月的最后一个交易日,否则取当月最后一个交易日

5)如果今天不是本月自然日最后一天,则取6个月前的第一天,否则取5个月前的第一天

6)任务交易日执行,取次月第一个交易日数据

7)如果当日是交易日则取当日的数据,如果当日非交易日则取前一个交易日的数据

8)每日更新近半年截至当日的数据,如果最后一天是30号,则取6个月前的最后一天


1、current_date 当前日期

select current_date();
--2024-12-11

2、now() 或 current_timestamp() 当前时间

select now();
select current_timestamp();
--2024-12-11 17:02:02:616--返回当前的时间
select from_UTC_timestamp(current_timestamp(),"GMT+8")
--2024-12-12 18:28:03.209

3、datediff(endDate, startDate) 计算日期相差天数

--其实就是用前一个日期减去后一个日期,想要得到正数的日期相差格式则需要把大的日期放在前边select datediff('2022-02-22','2022-02-20');
--2select datediff('2022-01-22','2022-02-20');
-- -29

4、months_between(endDate, startDate) 日期相差月数

select months_between('2022-06-16','2022-02-12');
--4.12903226select floor(months_between('2022-06-16','2022-02-12'));
--4

5、date_add(startDate, numDays) 日期加N天

select date_add('2022-02-22',3)
--2022-02-25select date_add('2022-02-22',-3)
--2022-02-19

6、date_sub(startDate, numDays) 日期减N天

select date_sub('2022-02-22',3)
--2022-02-19select date_sub('2022-02-22',-3)
--2022-02-25

7、add_months(startDate, numMonths) 日期加N月

select add_months('2022-02-22',3);
--2022-05-22select add_months('2022-02-22',-3);
--2021-11-22

但是在hivesql和spark sql 里 add_months(startDate, numMonths) 当startDate为月份最后一天的30号时,取不到相加或相减后月份的最后一天,例如

select add_months('2022-09-30',1);
--2022-10-30  --非往后一个月的最后一天改成:加多一步判断是否是最后一天
select (case when month('${yyyy-MM-dd}') <> month(date_add('${yyyy-MM-dd}', 1)) then last_day(add_months('${yyyy-MM-dd}',-6)) else add_months('${yyyy-MM-dd}',-6) end) DD

8、last_day(date) 日期所在月份的最后一天

select last_day('2022-02-22');
--2022-02-28

9、 next_day(startDate, dayOfWeek) 指定日期后的第一个星期几(星期参数为英文缩写)

select next_day('2022-02-22','MON')
--2022-02-28

10、from_unixtime:转化unix时间戳到当前时区的时间格式


select from_unixtime(1641044052,'yyyyMMdd');
--输出:20220101

11、unix_timestamp:转换到UNIX时间戳

--当前时间
select unix_timestamp();
--输出:1665803372--yyyy-MM-dd HH:mm:ss日期
select unix_timestamp('2022-01-01 13:34:12');
--输出:1641044052

12、to_date:返回时间中的年月日

select to_date('2022-01-01 13:34:12');
--输出:2022-01-01

13、year、month、day、hour、minute、second:返回时间的年、月、日、时、分、秒

--年
select year('2021-12-31 11:32:12');
select year('2021-12-31');
--输出:2021--月
select month('2021-12-31 11:32:12');
select month('2021-12-31');
--输出:12--日
select day('2021-12-31 11:32:12');
select day('2021-12-31');
--输出:31--时
select hour('2021-12-31 11:32:12');
--输出:11--分
select minute('2021-12-31 11:32:12');
--输出:32--秒
select second('2021-12-31 11:32:12');
--输出:12

14、weekofyear:返回指定日期所在一年中的星期号,范围为0到53

即第几个星期

select weekofyear('2022-05-05');
--输出:18

15、trunc:为指定元素而截去的日期值

参数: YEAR、YYYY、YY、MON、MONTH、MM

--查询当月第一天MM/MONTH/MON
select trunc('2020-12-03','MM');
select trunc('2020-12-03','MONTH');
select trunc('2020-12-03','MON');
--输出:2020-12-01--查询当年第一天YEAR/YY/YYYY
select trunc('2020-12-03','YYYY');
select trunc('2020-12-03','YEAR');
select trunc('2020-12-03','YY');
--输出:2020-12-01

16、date_trunc:

参数:YEAR、YYYY、YY、MON、MONTH、MM、DAY、DD、HOUR、MINUTE、SECOND、WEEK、QUARTER 

select date_trunc("HOUR" ,"2022-12-12T09:32:05.359");
--输出:2022-12-12 09:00:00 select date_trunc("YEAR" ,"2022-12-12T09:32:05.359");
--输出:2022-01-01 00:00:00 --本年第一天select date_trunc("MON" ,"2022-12-12T09:32:05.359");
--输出:2022-12-01 00:00:00  --本月第一天select date_trunc("WEEK" ,"2024-12-12T09:32:05.359");
--输出:2024-12-09 00:00:00  --本周第一天select date_trunc("QUARTER" ,"2024-12-12T09:32:05.359");
--输出:2024-10-01 00:00:00  --本季度第一天

17、date_format:对时间日期进行格式化

select date_format('2022-04-08', 'y');
--输出:2022select date_format('2022-04-08', 'yyyy');
--输出:2022select date_format('2022-04-08', 'yyyy-MM');
--输出:2022-04select date_format('2022-04-08 10:10:01', 'yyyy-MM');
--输出:2022-04select date_format('2022-04-08', 'yyyy-MM-dd');
--输出:2022-04-08

18、dayofmonth:查询当月第几天、dayofweek:查询周几

--dayofmonth
select dayofmonth('2024-12-12')
--输出:12--dayofweek(1 = Sunday, 2 = Monday, ..., 7 = Saturday)
select dayofweek('2024-12-12')
--输出:5  --5=Thursday

19、next_day:取当前天的下一个周一

--取当前天的下一个周一
select next_day('2024-12-12','MO');
--输出:2024-12-16--取当前周的周一
select date_add(next_day('2024-12-12','MO'),-7);
--输出:2024-12-09--取当前周的周日
select date_add(next_day('2024-12-12','MO'),-1) this_sun;
--输出:2024-12-15

20、pmod(int a, int b):返回a除b的余数的绝对值

--计算2024-12-12是星期几
select pmod(datediff('2024-12-12','2024-01-01') + 1,7)
--4  --星期四--计算今天是周几
select (case
when pmod(datediff(current_date(),date_trunc("YEAR",current_date())) + 1,7) = 1 then concat(current_date(),'(周一)')
when pmod(datediff(current_date(),date_trunc("YEAR",current_date())) + 1,7) = 2 then concat(current_date(),'(周二)')
when pmod(datediff(current_date(),date_trunc("YEAR",current_date())) + 1,7) = 3 then concat(current_date(),'(周三)')
when pmod(datediff(current_date(),date_trunc("YEAR",current_date())) + 1,7) = 4 then concat(current_date(),'(周四)')
when pmod(datediff(current_date(),date_trunc("YEAR",current_date())) + 1,7) = 5 then concat(current_date(),'(周五)')
when pmod(datediff(current_date(),date_trunc("YEAR",current_date())) + 1,7) = 6 then concat(current_date(),'(周六)')
else concat(current_date(),'(周日)') end) WEEK--输出:2024-12-12(周四)

21、常用日期取数:

1、from_unixtime(unix_timestamp(,),)用法

--获取前一天的日期
select cast(from_unixtime(unix_timestamp('20221001','yyyyMMdd')-1,'yyyyMMdd') as bigint)
--输出:20220930--转换日期格式
select from_unixtime(unix_timestamp('20211023','yyyyMMdd'),'yyyy-MM-dd')
--输出:2021-10-23

2、当前周属于哪个月

--这周内哪个月份所占天数多就算哪个月
SELECT month(date_sub(next_day('2024-12-12','Mon'),4))
--输出:12

3、当前周属于哪一周

SELECT 
case when day(date_add(next_day('2024-12-12','Mon'),-4)) <=7 then '第一周'
when day(date_add(next_day('2024-12-12','Mon'),-4)) >7 and day(date_add(next_day('2024-12-12','Mon'),-4))<=14 then '第二周'
when day(date_add(next_day('2024-12-12','Mon'),-4)) >14 and day(date_add(next_day('2024-12-12','Mon'),-4))<=21 then '第三周'
when day(date_add(next_day('2024-12-12','Mon'),-4)) >21 and day(date_add(next_day('2024-12-12','Mon'),-4))<=28 then '第四周'
when day(date_add(next_day('2024-12-12','Mon'),-4)) >28 then '第五周'
end as week_key   --周
--输出:第二周

4、生成连续的天表、小时表、分钟表

1)生成连续的天

---生成连续的天
select
date_add(start_date,pos) as dt
from
(select '2022-12-01' as start_date,'2022-12-04' as end_date
)t
lateral view posexplode(split(repeat(',',datediff(end_date,start_date)),',')) tab as pos,val;

输出结果:

2)生成连续小时

---生成连续的小时
select
from_unixtime(t1.start_time+tab.pos*3600) as continue_time
from
(selectunix_timestamp('2022-12-01 00:00:00') as start_time   ---生成连续小时的开始时间,unix_timestamp('2022-12-01 03:00:00') as end_time   ---生成连续小时的结束时间
)t1
lateral view posexplode(split(repeat(',',cast((end_time-start_time)/3600 as int)),',')) tab as pos,val;

输出结果:

3)生成连续分钟

---生成连续的分钟
select
from_unixtime(t1.start_time+tab.pos*60) as continue_time
from
(selectunix_timestamp('2021-12-01 00:00:00') as start_time   ---生成连续分钟的开始时间,unix_timestamp('2021-12-01 00:03:00') as end_time   ---生成连续分钟的结束时间
)t1
lateral view posexplode(split(repeat(',',cast((end_time-start_time)/60 as int)),',')) tab as pos,val;

输出结果:

4)生成连续秒

---生成连续的秒
select
from_unixtime(t1.start_time+tab.pos) as continue_time
from
(selectunix_timestamp('2021-12-01 00:00:00') as start_time   ---生成连续秒的开始时间,unix_timestamp('2021-12-01 00:00:03') as end_time   ---生成连续秒的结束时间
)t1
lateral view posexplode(split(repeat(',',cast(end_time-start_time as int)),',')) tab as pos,val;

输出结果:

5)生成连续月

---生成连续的月
SELECTSUBSTR( add_months ( start_date, pos ), 1, 10 ) AS month_key 
FROM(SELECT '2023-03-01' AS start_date ) tmp lateral VIEW posexplode ( split ( space( 3 ), '' ) ) t AS pos, val;

输出结果:

6)生产今年内的连续月

---生产今年内的连续月
SELECTSUBSTR( add_months ( FROM_UNIXTIME( unix_timestamp( SUBSTR( start_date, 1, 4 ), 'yyyy' )), pos ), 1, 10 ) AS month_key 
FROM(SELECT concat(substr(add_months('2023-03-01',1),0,4),'-01-01') AS start_date ) tmp lateral VIEW posexplode ( split ( space( 11 ), '' ) ) t AS pos, val ;

输出结果:

5、时间和秒数互相转换

1)当前时间转换成秒数

SELECThour('2023-06-06 12:00:00') * 3600 + minute('2023-06-06 12:00:00') * 60 + second('2023-06-06 12:00:00')
--输出:43200

2)秒数转换为时间(时分秒)

selectconcat(casewhen length(cast(floor(43200 / 3600) as string)) = 1 then concat('0', floor(43200 / 3600), ':')when length(cast(floor(43200 / 3600) as string)) = 2 then concat(floor(43200 / 3600), ':')else '00:'end,casewhen length(cast(floor(43200 % 3600 / 60) as string)) = 1 then concat('0', floor(43200 % 3600 / 60), ':')when length(cast(floor(43200 % 3600 / 60) as string)) = 2 then concat(floor(43200 % 3600 / 60), ':')else '00:'end,casewhen length(cast(floor(43200 % 3600 % 60) as string)) = 1 then concat('0', floor(43200 % 3600 % 60))when length(cast(floor(43200 % 3600 % 60) as string)) = 2 then floor(43200 % 3600 % 60)else '00'end)
--输出:12:00:00

22、工作特殊日期取数(有一些为工作环境内置函数)

1)当月最后一天更新完整月份时间范围的数据

例如,2024-09-30更新近半年2024-04-01至2024-09-30的数据

where month('${yyyy-MM-dd}') != month(date_add('${yyyy-MM-dd}', 1)) -- 月末最后一天
and busi_date <= default.pretradedate(add_months(default.datekey2date(concat('${YYYYMM}', '01')), 1), 1)
and busi_date >= add_months(default.datekey2date(concat('${YYYYMM}', '01')), -5)2024-10-28 例子:
month('${yyyy-MM-dd}'):10
date_add('${yyyy-MM-dd}', 1) :2024-10-29
month(date_add('${yyyy-MM-dd}', 1)):10
concat('${YYYYMM}', '01'):20241001
default.datekey2date(concat('${YYYYMM}', '01'):2024-10-01
add_months(default.datekey2date(concat('${YYYYMM}', '01')), 1):2024-11-01
default.pretradedate(add_months(default.datekey2date(concat('${YYYYMM}', '01')), 1), 1):2024-10-31
add_months(default.datekey2date(concat('${YYYYMM}', '01')), -5):2024-05-01

2)上月最后一个交易日

select default.pretradedate(default.datekey2date(concat('${YYYYMM}', '01')), 1) DD

3)本月第一个交易日

select default.pretradedate(default.pretradedate(default.datekey2date(concat('${YYYYMM}', '01')),1),-1)

4)如果今天不是本月自然日最后一天,则取上月的最后一个交易日,否则取当月最后一个交易日

select (CASE WHEN MONTH('${yyyy-MM-dd}') != MONTH(date_add('${yyyy-MM-dd}',1)) 
THEN default.pretradedate(add_months(default.datekey2date(concat('${YYYYMM}', '01')),1), 1)
else default.pretradedate(default.datekey2date(concat('${YYYYMM}', '01')),1) end) DD

5)如果今天不是本月自然日最后一天,则取6个月前的第一天,否则取5个月前的第一天

--如果今天不是本月自然日最后一天,则取6个月前的第一天,否则取5个月前的第一天
select (CASE WHEN MONTH('${yyyy-MM-dd}') != MONTH(date_add('${yyyy-MM-dd}',1)) 
then add_months(default.datekey2date(concat('${YYYYMM}', '01')), -5)
else add_months(default.datekey2date(concat('${YYYYMM}', '01')), -6) end) DD--参数:2024-12-12 202412
--输出:2024-06-01--参数:2024-12-31 202412
--输出:2024-07-01

6)任务交易日执行,取次月第一个交易日数据

例如event_date ='2024-10-31'的数据会在busi_date = '2024-11-01'的数据才出现,而busi_date = '2024-10-31'的数据是没有的,需要统计为10月份的数据,因此需要判断

where '${yyyy-MM-dd}'= default.pretradedate(default.pretradedate(default.datekey2date(concat('${YYYYMM}', '01')),1),-1) -- 本月第一个交易日
--任务交易日执行,取次月第一个交易日数据
and busi_date = default.pretradedate(default.pretradedate(default.datekey2date(concat('${YYYYMM}', '01')),1),-1)
and event_date <= default.pretradedate(default.datekey2date(concat('${YYYYMM}', '01')), 1)
and event_date >= add_months(default.datekey2date(concat('${YYYYMM}', '01')), -6)

7)如果当日是交易日则取当日的数据,如果当日非交易日则取前一个交易日的数据

select default.pretradedate(date_add('${yyyy-MM-dd}',1),1)

8)每日更新近半年截至当日的数据,如果最后一天是30号,则取6个月前的最后一天

where A.busi_date >(case when month('${yyyy-MM-dd}') <> month(date_add('${yyyy-MM-dd}', 1)) then last_day(add_months('${yyyy-MM-dd}',-6))
else add_months('${yyyy-MM-dd}',-6) end)
and A.busi_date <= '${yyyy-MM-dd}'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/889744.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

12.11函数 结构体 多文件编译

1.脑图 定义一个数组&#xff0c;用来存放从终端输入的5个学生的信息【学生的信息包含学生的姓名、年纪、性别、成绩】 1>封装函数 录入5个学生信息 2>封装函数 显示学生信息 3>封装函数 删除第几个学生信息&#xff0c;删除后调用显示学生信息函数 显示 4> 封…

从 Router 到 Navigation:HarmonyOS 路由框架的全面升级与迁移指南

在本教程中&#xff0c;我们深入探讨了 Router 和 Navigation 在 HarmonyOS 中的用法差异及如何从 Router 切换到 Navigation 的方法。重点涵盖了页面跳转、转场动画、生命周期管理以及跨包路由的实现。 页面结构对比 Router 页面结构 每个页面需要使用 Entry 注解。 页面需要…

【工具】linux matlab 的使用

问题1 - 复制图表 在使用linux matlab画图后&#xff0c;无法保存figure。 例如在windows下 但是在linux下并没有这个“Copy Figure”的选项。 这是因为 “ The Copy Figure option is not available on Linux systems. Use the programmatic alternative.” 解决方案&…

windows11 专业版 docker desktop 安装指南

家庭中文版需升级专业版&#xff0c;家庭版没有hyper-v。 开始运行optionalfeatures.exe打开windows功能 安装wsl2 步骤 1 - 启用适用于 Linux 的 Windows 子系统步骤 2 - 检查运行 WSL 2 的要求步骤 3 - 启用虚拟机功能步骤 4 - 下载 Linux 内核更新包 步骤 1 - 启用适用于 L…

工业大数据分析算法实战-day01

文章目录 前言day01工业上刻画物理世界模型忽略业务的数据挖掘是本末倒置数据分析算法的朴素思想 前言 从毕业后从事的行业是机房动力环境运维行业&#xff0c;职责为动环设备的监控预警和故障诊断&#xff0c;核心主旨为动环设备的数智化&#xff0c;个人浅见从大类视角来看隶…

bug:uniapp运行到微信开发者工具 白屏 页面空白

1、没有报错信息 2、预览和真机调试都能正常显示&#xff0c;说明代码没错 3、微信开发者工具版本已经是win7能装的最高版本了&#xff0c;1.05版 链接 不打算回滚旧版本 4、解决&#xff1a;最后改调试基础库为2.25.4解决了&#xff0c;使用更高版本的都会报错&#xff0c;所…

用 Python 实现经典的 2048 游戏:一步步带你打造属于你的小游戏!

用 Python 实现经典的 2048 游戏&#xff1a;一步步带你打造属于你的小游戏&#xff01;&#xff08;结尾附完整代码&#xff09; 简介 2048 是一个简单而又令人上瘾的数字拼图游戏。玩家通过滑动方块使相同数字的方块合并&#xff0c;目标是创造出数字 2048&#xff01;在这篇…

【Go】-倒排索引的简单实现

目录 什么是倒排索引 定义 基本结构和原理 分词在倒排索引中的重要性 简单倒排索引的实现 接口定义 简单数据库的实现 倒排索引 正排索引 测试 总结 什么是倒排索引 定义 倒排索引&#xff08;Inverted Index&#xff09;是一种索引数据结构&#xff0c;它是文档检…

智汇云舟4个案例入选“中国联通智慧城市物联感知与AI应用案例”

12月10日&#xff0c;由中国联通智慧城市军团联合联通数字科技有限公司物联网事业部、物联中国团体组织联席会共同主办的“中国联通首届智慧城市领域物联感知与AI应用优秀案例发布交流大会”在郑州举行。大会现场对50余个优秀案例进行了集中发布与表彰。智汇云舟凭借深厚的技术…

http 502 和 504 的区别

首先看一下概念&#xff1a; 502&#xff1a;作为网关或者代理工作的服务器尝试执行请求时&#xff0c;从上游服务器接收到无效的响应。503&#xff1a;由于临时的服务器维护或者过载&#xff0c;服务器当前无法处理请求。这个状况是临时的&#xff0c;并且将在一段时间以后恢…

博弈论3:图游戏SG函数(Graph Games)

目录 一、图游戏是什么 1.游戏特征 2.游戏实例 二、图游戏的必胜策略 1.SG 函数&#xff08;Sprague-Grundy Function&#xff09; 2.必胜策略&#xff08;利用SG函数&#xff09; 3.拿走游戏转化成图游戏&#xff08;Take-away Game -> Graph Game&#xff09; 一、图…

免费生成AI PPT产品推荐?

要完全免费几乎是没有的&#xff0c;要知道AI还是非常烧钱的。 不过免费蹭还是有很多方法的&#xff0c;这里收集了一些&#xff1a; 下面分享我自己免费蹭过的几款AI制作PPT的工具。 1 金山-WPS PPT对我们来说并不陌生&#xff0c;而微软的PowerPoint与金山的WPS也是我们最常…

Python机器视觉的学习

一、二值化 1.1 二值化图 二值化图&#xff1a;就是将图像中的像素改成只有两种值&#xff0c;其操作的图像必须是灰度图。 1.2 阈值法 阈值法&#xff08;Thresholding&#xff09;是一种图像分割技术&#xff0c;旨在根据像素的灰度值或颜色值将图像分成不同的区域。该方法…

Cisco Packet Tarcer配置计网实验笔记

文章目录 概要整体架构流程网络设备互连基础拓扑图拓扑说明配置步骤 RIP/OSPF混合路由拓扑图拓扑说明配置步骤 BGP协议拓扑图拓扑说明配置步骤 ACL访问控制拓扑图拓扑说明配置步骤 HSRP冗余网关拓扑图拓扑说明配置步骤 小结 概要 一些环境配置笔记 整体架构流程 网络设备互连…

【优选算法】二分算法(在排序数组中查找元素的第一个和最后一个位置,寻找峰值,寻找排序数组中的最小值)

二分算法简介&#xff1a; 提到二分我们可能都会想起二分查找&#xff0c;二分查找要求待查找的数组是有序的&#xff0c;与我们今天讲的二分算法不同&#xff0c;并不是数组元素严格按照有序排列才可以使用二分算法&#xff0c;只要数组中有一个点可以将数组分为两个部分&…

下载与使用PCL启动器(2.8.12正式版)

一.下载PCL启动器 PCL启动器下载官网&#xff1a;爱发电 连接创作者与粉丝的会员制平台将创作的自由还给创作者&#xff01;爱发电是让创作者简单地获得稳定收入的粉丝赞助平台。无论你在创作什么&#xff0c;都能在这里获得持续的资金支持&#xff0c;让创作从此更自由。htt…

【ArcGIS】基于R语言、MaxEnt模型融合技术的物种分布模拟、参数优化方法、结果分析制图与论文写作

第一章、以问题导入的方式&#xff0c;深入掌握原理基础【理论篇】 1、R语言入门&#xff1a; &#xff08;1&#xff09;安装R及集成开发环境&#xff08;IDE&#xff09;&#xff1b;&#xff08;2&#xff09;R语言基础语法与数据结构&#xff0c;包括&#xff1a;程序包安…

泊松编辑 possion editing图像合成笔记

开源地址&#xff1a; GitHub - kono-dada/Reproduction-of-possion-image-editing 掩码必须是矩形框

江科大笔记—DMA数据转运DMA+AD多通道

1. DMA初始化结构体详解 标准库函数对每个外设都建立了一个初始化结构体xxx_InitTypeDef(xxx为外设名称)&#xff0c;结构体成员用于设置外设工作参数&#xff0c; 并由标准库函数xxx_Init()调用这些设定参数进入设置外设相应的寄存器&#xff0c;达到配置外设工作环境的目的。…

程序算术题-2

程序算术题-2 输出所有组合逻辑实例代码 输出所有排列逻辑实例代码 输出所有组合 计算一组数字按n位数组合的所有组合。 逻辑 /*** param stringBuilder 用于组合的拼接* param list 组合数序列* param level 目前位数* param exceptedLevel 组合期待位数*/…