查找函数 find('a','abc')>0 =find('a', 'abc') > 0 'a'是否存在'abc'中
日期函数 left(MONTHDELTA(sysdate, -1), 7) =left(MONTHDELTA(sysdate, -1), 7) 取上个月,也可以传入字符串如('2024-01')
日期函数 DAYSOFMONTH(year(sysdate),'-01') =DAYSOFMONTH(year(sysdate), '-01') 该月包含的天数
日期函数 DATEINMONTH(sysdate,1) =DATEINMONTH(sysdate,1) 取当月第一天
日期函数 DATEINMONTH(sysdate,-1) =DATEINMONTH(sysdate, -1) 取当月最后一天
拼接函数 CONCATENATE(year(sysdate),'年') =CONCATENATE(year(sysdate), '年') 拼接函数
截取函数 left('123abc',3),right('123abc',2) =left('123abc',3)+','+right('123abc',2) 截取函数
判断函数 if(len('abc') > 0, 成立, 不成立) =if(len('abc') > 0, '成立', '不成立') if(条件,满足返回结果1,不满足返回结果2)
判断函数 nvl(null,'默认值') =nvl(null,'默认值') 如果为空则为默认值

附加:
当月第一天:DATEINMONTH(sysdate,1)
去年当月第一天:DATEINMONTH(MONTHDELTA(TODAY(),-12),1)
今天:today()
去年当月的今天:yeardelta(today(),-1)
去年第一天:format(CONCATENATE(CONCATENATE(year(now())-1,"01"),"01"),"yyyy-MM-dd")
今年第一天:dateinyear(today(),1)
传入开始和结束时间,返回年或年月
SELECT
${if(date_type='年',
"to_number(substr('"+start+"', 0,4))+rownum-1",
"TO_CHAR(ADD_MONTHS(TO_DATE('"+ start +"', 'YYYY-MM'),ROWNUM - 1), 'YYYY-MM')")}
month
FROM DUAL
${if(date_type='年',
"CONNECT BY ROWNUM <=to_number(substr('"+end+"', 0,4))-to_number(substr('"+start+"', 0,4))+1",
"CONNECT BY ROWNUM <=MONTHS_BETWEEN(TO_DATE('"+ end +"', 'YYYY-MM'), TO_DATE('"+start+"', 'YYYY-MM')) + 1")}
本文介绍了Oracle数据库中的各种函数,包括查找函数(find)、日期函数(MONTHDELTA、DAYSOFMONTH等)、拼接函数(CONCATENATE)、截取函数(left、right)以及判断函数(if)。同时展示了如何使用这些函数根据给定的开始和结束时间生成年份或月份范围的SQL查询。

3214

被折叠的 条评论
为什么被折叠?



