【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
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
;
2、单行函数
substr(s, a, b)
,截取。a 是开始索引,可为负值;b 是截取长度。注意:截取方向始终向右;round(a, b)
,四舍五入。b 是精确位数,若b < 0
,则向左精确。因此,round(a)
等价于round(a, 0)
;upper(s)
,转大写;lower(s)
,转小写;initcap(s)
,首字母大写;length(s)
,长度;concat(a, b)
,拼接。等同于||
;trunc(s)
,截取,类似round(a)
;sysdate
,系统时间;instr(s1, s2[, a][, b])
,查找。s2 是查找字符,a 是开始索引,b 是第几个。因此,instr(s1, s2)
等价于instr(s1, s2, 1, 1)
;lpad/rpad(s1, n, s2)
,左/右填充。将s1
用s2
向左填充成长度为n
的字符串;
示例:select lpad(rpad('csdn', 7, '#'), 10, '*') result from dual;
结果:
若n < s1.length
,则无论lpad/rpad()
,结果都显示s1
的前n
个字符(从左往右)。replace(s1, s2, s3)
,替换。将s1
中的s2
用s3
替换;- ’
trim(s)
,去除前后空格;trim(leading/trailing/both/无 a from b)
,去除 b 中开头/结尾/开头和结尾/开头和结尾的 a; mod(a, b)
,即a%b
,余数符号跟 a;
3、关于日期
3.1 运算
- 加
int
,改变天数,进位; - 加
hour/24(hour 是小时)
,改变小时,进位。
3.2 日期函数
months_between(d1, d2)
,返回d1
与d2
相差的自然月数;add_months(d, n)
,增加月数;next_day(d, '星期一')
,返回 d 后的第1个星期一;last_day(d)
,返回 d 当月的最后1天;round(d, 'dd')
,以day
四舍五入。'dd'
是格式码,其他格式码:'CC'
→ 世纪,'YY'
→ 年,'mm'
→ 月,'hh24'
→ 小时,'mi'
→ 分钟,'ss'
→ 秒。其中,round(d, 'dd')
等价于round(d)
;trunc(d, 'dd')
同round()
,trunc(d, 'dd')
等价于trunc(d)
;extract(day from d)
,获取 d 的天数。day
是标识符,表示“天”。其他标识符:'year'
→ 年,'month'
→ 月,
4、关于类型间转换
4.1 隐式转换
insert
、update
时,转换为字段的类型,如:Integer → number
;select
时,转换为属性的类型,如:number → int
;- 字符与数字比较时,转换为数值类型;
- 字符与日期比较时,转换为日期类型;
- 用
||
连接时,转换为字符类型。
4.2 显式转换
后续补充。
本文持续更新中。。。