oracle细节、经验锦集

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/m0_69908381/article/details/131054454
出自【进步*于辰的博客】>

由于是随兴记录,因此阐述的比较多而乱,大家可以直接【ctrl + F】进行搜索。

文章目录

  • 1、细节积累
  • 2、单行函数
  • 3、关于日期
    • 3.1 运算
    • 3.2 日期函数
  • 4、关于类型间转换
    • 4.1 隐式转换
    • 4.2 显式转换

1、细节积累

  1. 字符串前有一个空字符,故首字母的索引是1

2、单行函数

  1. substr(s, a, b),截取。a 是开始索引,可为负值;b 是截取长度。注意:截取方向始终向右;
  2. round(a, b),四舍五入。b 是精确位数,若b < 0,则向左精确。因此,round(a)等价于round(a, 0)
  3. upper(s),转大写;lower(s),转小写;initcap(s),首字母大写;length(s),长度;concat(a, b),拼接。等同于||trunc(s),截取,类似round(a)sysdate,系统时间;
  4. instr(s1, s2[, a][, b]),查找。s2 是查找字符,a 是开始索引,b 是第几个。因此,instr(s1, s2)等价于instr(s1, s2, 1, 1)
  5. lpad/rpad(s1, n, s2),左/右填充。将s1s2向左填充成长度为n的字符串;
    示例:select lpad(rpad('csdn', 7, '#'), 10, '*') result from dual;
    结果:
    在这里插入图片描述
    n < s1.length,则无论lpad/rpad(),结果都显示s1的前n个字符(从左往右)。
  6. replace(s1, s2, s3),替换。将s1中的s2s3替换;
  7. trim(s),去除前后空格;trim(leading/trailing/both/无 a from b),去除 b 中开头/结尾/开头和结尾/开头和结尾的 a;
  8. mod(a, b),即a%b,余数符号跟 a;

3、关于日期

3.1 运算

  1. int,改变天数,进位;
  2. hour/24(hour 是小时),改变小时,进位。

3.2 日期函数

  1. months_between(d1, d2),返回d1d2相差的自然月数;
  2. add_months(d, n),增加月数;
  3. next_day(d, '星期一'),返回 d 后的第1个星期一;
  4. last_day(d),返回 d 当月的最后1天;
  5. round(d, 'dd'),以day四舍五入。'dd'是格式码,其他格式码:'CC'→ 世纪,'YY'→ 年,'mm'→ 月,'hh24'→ 小时,'mi'→ 分钟,'ss'→ 秒。其中,round(d, 'dd')等价于round(d)
  6. trunc(d, 'dd')round()trunc(d, 'dd')等价于trunc(d)
  7. extract(day from d),获取 d 的天数。day标识符,表示“天”。其他标识符:'year'→ 年,'month'→ 月,

4、关于类型间转换

4.1 隐式转换

  1. insertupdate时,转换为字段的类型,如:Integer → number
  2. select时,转换为属性的类型,如:number → int
  3. 字符与数字比较时,转换为数值类型;
  4. 字符与日期比较时,转换为日期类型;
  5. ||连接时,转换为字符类型。

4.2 显式转换

后续补充。

本文持续更新中。。。

你可能感兴趣的:(开发细节,经验,oracle,经验分享)