1.时间函数
SELECT SYSDATE --2022-07-08 17:04:41.000
,TO_CHAR(SYSDATE,'YYYY-MM-DD') AS date_ --日期转字符串 2022-07-08
,TO_CHAR(SYSDATE,'YYYY') AS year_ --年 2022
,TO_CHAR(SYSDATE,'Q') AS quarter --季度 3
,TO_CHAR(SYSDATE,'W') AS week_of_month --当月第几周 2
,TO_CHAR(SYSDATE,'WW') AS week_of_year --当年第几周 27
,TO_CHAR(SYSDATE,'D') AS day_of_week --本周第几天,周日为第一天 6
,TO_CHAR(SYSDATE,'DAY') AS weekday --星期几 星期五
,TRUNC(SYSDATE) AS date0 --返回当前日期0点 2022-07-08 00:00:00.000
,TRUNC(SYSDATE,'hh') AS date_hour --日期截取到时 2022-07-08 17:00:00.000
,TRUNC(SYSDATE,'YYYY') AS year_firstday --当年第一天 2022-01-01 00:00:00.000
,TRUNC(SYSDATE,'Q') AS quarter_firstday --当季度第一天 2022-07-01 00:00:00.000
,TRUNC(SYSDATE,'MM') AS month_firstday --当月第一天 2022-07-01 00:00:00.000
,TRUNC(SYSDATE,'D') AS week_firstday --本周第一天 2022-07-03 00:00:00.000
,LAST_DAY(SYSDATE) AS month_lastday --当月最后一天 2022-07-31 17:04:41.000
,NEXT_DAY(SYSDATE,6) AS next_friday --下周五 2022-07-15 17:04:41.000
,ADD_MONTHS(SYSDATE,-1) AS last_month --上月同一天 2022-06-08 17:04:41.000
,FLOOR(SYSDATE - TO_DATE('2022-07-01','YYYY-MM-DD')) AS date_diff --日期差 7
,MONTHS_BETWEEN(SYSDATE,TO_DATE('2022-06-01','YYYY-MM-DD')) AS month_diff --月数差 1.24876
,TO_NUMBER(SYSDATE - TO_DATE('2022-07-08 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24 AS hour_diff --时间差-时 1.1605(日期差按天计数,按小时计算时需乘24)
,FLOOR(TO_NUMBER(SYSDATE - TO_DATE('2022-07-08 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60) AS minute_diff --时间差-分 69
,GREATEST('2022-07-01','2022-07-08') AS max_date --最大的日期 2022-07-08
FROM dual
2.正则表达式
2.1 REGEXP_SUBSTR
REGEXP_SUBSTR(string, pattern, position, occurrence, modifier)
string:需要进行正则处理的字符串
pattern:进行匹配的正则表达式
position:起始位置,从字符串的第几个字符开始正则表达式匹配(默认为1) 注意:字符串最初的位置是1而不是0
occurrence:获取第几个分割出来的组(分割后最初的字符串会按分割的顺序排列成组)
modifier:模式(‘i’不区分大小写进行检索;‘c’区分大小写进行检索。默认为’c’)针对的是正则表达式里字符大小写的匹配