create or replace
procedure sjh.five_category_loan_quality(in input_date date)
Language sql
specific five_category_loan_quality
--------存储过程body
begin
declare variable_name type;
set variable = value ;
------存储过程的参数时直接可以用的 input_date
if condition
then statement1;
statement2;
elseif condition
then statement1;
statemnet2;
statement1;
statement2;
end if ;
注:存储过程中一般不用for循环,避免SQL无限循环影响数据库。解决方案可在procedure外面包一层shell脚本进行循环调用。
procedure的调用 call sjh.five_category_loan_quality(参数)
以下结果在’2023-04-04‘下测试。
length(string) :例 length(cast(column value as varchar))
left(string,count) :返回从左往右的count数量的字符串
right(string,count):返回从右往左的count数量的字符串
substr(string,a1,a2):返回string中 从a1个开始,取a2长度的字符串
日期可以直接减 数量 + 单位:例 cast('2023-04-05' as date) - 5 day
or cast('2023-04-05' as date) - 5 month
两个日期相差的天数 days('2023-04-05') - days('2023-01-06')
date(日期):即年月日,2023-04-04
year(日期):年份,2023
month(日期):月份 4
quarter(日期):季度 2
week(日期) :第几周 14
day(日期):返回日期部分 4
hour(日期):
minute(日期)
second(日期)
dayofyear(日期):返回一年内的第几天 94
dayofweek(日期):返回星期几:用数字表示的 3
dayname(日期):返回星期几:用英文表示的 Tuesday
monthname(日期):返回星期几:用英文表示的 April
测试values date(now())
日期变化 还可以通过
values (’2023-02-01‘::date - 1 year +1 day +6 month)
两个日期间隔的天数
values days('2023-02-01'::date)-days('2023-02-01'::date)
将日期转换为字符串格式
char('2023-02-01'::date)
将字符串转换为日期格式
date('2023-02-01')
::后面加要转换的类型更方便一些
TO_CHAR 将时间戳数据转变成字符串类型
将时间类型的变量,转换为字符串类型,to_char('2023-04-05','yyyymmdd')
返回已用字符模板进行格式化的时间戳记的字符表示。TO_CHAR 是 VARCHAR_FORMAT 的同义词。
TO_DATE ::用来转化其他数据类型变成时间戳必定是带时分秒的
从已使用字符模板解释过的字符串返回时间戳记。TO_DATE 是 TIMESTAMP_FORMAT 的同义词。
例:to_date('20230405','yyyy-mm-dd')
接下去总结各种月初月末,季初季末的日期。
月末的判断: