SQL常用字符串截取

技术博客 (316) 2023-09-16 10:44:55

1、RTRIM()删除左边出现的字符串

select LTRIM('abdcdabddee','abc') from dual;  

2、RTRIM()删除右边出现的字符串

select RTRIM('abdcdabddee','abc') from dual; 

3、在列的左边粘贴0字符

SELECT LPAD('100',8,'0') FROM emp;
rpad('tech',2); 将返回' te' 

4、将替换字符改为修改

replace('替换字符串', '替换', '修改')

5、 查找字符串位置

select INSTR('CORPORATE FLOOR','OR', 3, 2) as loc from dual  

INSTR(string,subString,position,ocurrence)查找字符串位置

解释:string:源字符串 subString:要查找的子字符串 position:查找的开始位置 ocurrence:源字符串中第几次出现的子字符串instr('sss:aa',':') ,返回:所在位置索引。

6、字符串截取

select substr(to_char(sysdate, 'yyyy-mm-dd HH:mi:ss'), 12, 5) as time from dual   
SUBSTR(string,start_position,[length])  

解释:string 源字符串   start_position   开始位置(从0开始) length 可选项,子字符串的个数

7、拼接字符串

select concat('拼接', '字符串') as str from dual   //多个则需要嵌套
select '拼接'||'字符串' as str from dual  

8、字符转数字

to_number(LTRIM(MAX('007'),'0'))

9、日期比较

(1)、在XX之前

//to_date(字符,‘格式’)   
select * from up_date where update <= to_date('2007-09-07 00:00:00','yyyy-mm-dd hh24:mi:ss')   

(2)、范围时间段

between date1  and date2;     
date1>=to_date('','') and to_date('','')<=date2 

(3)、返回:2004-10-17 00:00:00.000  向日期加上2天 

select dateadd(day,2,'2004-10-15')

(4)、datepart 返回代表指定日期的指定日期部分的整数

SELECT DATEPART(month, '2004-10-15') --返回 10 

(5)、datename 返回代表指定日期的指定日期部分的字符串

SELECT datename(weekday, '2004-10-15') --返回:星期五 

(6)、datediff 返回跨两个指定日期的日期和时间边界数

select datediff(day,'2004-09-01','2004-09-18') --返回:17
THE END

发表回复