select * from r_patient a where a.birthdate= to_date('1953-03-01','yyyy-mm-dd');
select * from r_patient where to_char(birthdate,'yyyy-mm-dd')= '1953-03-01';
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | 1.日期格式转换 select * from V_Stat_CheckFee where CONTENT_DATE between to_date( '20170711' , 'yyyymmdd' ) and to_date( '20170718' , 'yyyymmdd' ) ; to_char(ENROLDATE, 'yyyy-mm-dd' ); between to_date( '2017-09-28 00:00:00' , 'YYYY-MM-DD HH24:MI:SS' ) and to_date( '2017-09-28 23:59:59' , 'YYYY-MM-DD HH24:MI:SS' ); to_char(REQ_DATE_TIME, 'yyyy-mm-dd' )>= '2017-07-30' and to_char(REQ_DATE_TIME, 'yyyy-mm-dd' )<= '2017-10-12' ; STATUS<> '已预约' ; STUDY_DATE >= to_date( '2017-09-28 00:00:00' , 'YYYY-MM-DD HH24:MI:SS' ) and STUDY_DATE <= to_date( '2017-09-28 23:59:59' , 'YYYY-MM-DD HH24:MI:SS' ) select count(*) from ... select to_char(sysdate, 'yyyy-MM-dd HH24:mi:ss ' ) from dual; //mi是分钟 2013-11-25 18:45:32 select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss' )currenttime, to_char(sysdate, 'yyyy' ) year, to_char(sysdate, 'mm' ) month, to_char(sysdate, 'dd' ) day, to_char(sysdate, 'day' ) week, to_char(sysdate, 'hh24' )hour, to_char(sysdate, 'mi' ) minute, to_char(sysdate, 'ss' ) second from dual; select to_date( '2009-07-04 05:02:01' , 'yyyy-mm-dd hh24:mi:ss' )currenttime, to_char(to_date( '2009-07-04 05:02:01' , 'yyyy-mm-dd hh24:mi:ss' ), 'yyyy' )year, to_char(to_date( '2009-07-04 05:02:01' , 'yyyy-mm-dd hh24:mi:ss' ), 'mm' )month, to_char(to_date( '2009-07-04 05:02:01' , 'yyyy-mm-dd hh24:mi:ss' ), 'dd' ) day, to_char(to_date( '2009-07-04 05:02:01' , 'yyyy-mm-dd hh24:mi:ss' ), 'day' ) week, to_char(to_date( '2009-07-04 05:02:01' , 'yyyy-mm-dd hh24:mi:ss' ), 'day' , 'NLS_DATE_LANGUAGE=American' ) week, --设置语言 to_char(to_date( '2009-07-04 05:02:01' , 'yyyy-mm-dd hh24:mi:ss' ), 'hh24' )hour, to_char(to_date( '2009-07-04 05:02:01' , 'yyyy-mm-dd hh24:mi:ss' ), 'mi' ) minute, to_char(to_date( '2009-07-04 05:02:01' , 'yyyy-mm-dd hh24:mi:ss' ), 'ss' ) second from dual; 2.修改添加数据库字段 alter table qs_queuebusiness modify(APPOINTTIME varchar(100)); alter table qs_queuebusiness Add(APPOINTTIME varchar(100)); 3.日期格式参数及其含义说明 D 一周中的星期几 DAY 天的名字,使用空格填充到9个字符 DD 月中的第几天 DDD 年中的第几天 DY 天的简写名 IW ISO标准的年中的第几周 IYYY ISO标准的四位年份 YYYY 四位年份 YYY,YY,Y 年份的最后三位,两位,一位 HH 小时,按12小时计 HH24 小时,按24小时计 MI 分 SS 秒 MM 月 Mon 月份的简写 Month 月份的全名 W 该月的第几个星期 WW 年中的第几个星期 4.日期时间间隔操作 当前时间减去7分钟的时间 select sysdate,sysdate - interval '7' MINUTE FROM dual; 当前时间减去7小时的时间 select sysdate,sysdate - interval '7' HOUR FROM dual; 当前时间减去7天的时间 select sysdate,sysdate - interval '7' DAY FROM dual; 当前时间减去7月的时间 select sysdate,sysdate - interval '7' MONTH FROM dual; 当前时间减去7年的时间 select sysdate,sysdate - interval '7' YEAR FROM dual; 时间间隔乘以一个数字 select sysdate,sysdate - 8*interval '2' HOUR FROM dual; 5.日期到字符操作 select sysdate,to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual select sysdate,to_char(sysdate,’yyyy-mm-dd hh:mi:ss’) from dual select sysdate,to_char(sysdate,’yyyy-ddd hh:mi:ss’) from dual select sysdate,to_char(sysdate,’yyyy-mm iw-d hh:mi:ss’) from dual 参考oracle的相关关文档(ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515) 6.字符到日期操作 select to_date(’2003-10-17 21:15:37’,’yyyy-mm-dd hh24:mi:ss’) from dual 具体用法和上面的to_char差不多。 7. case ......when...用法 select cardid, name, org, case when gender= '1' then '女' when gender= '2' then '男' else '其他' end gender from reader where name like 'm%' ; case when length(b.BUSINESSID)<2 then c.queuesign|| '00' ||b.BUSINESSID when length(b.BUSINESSID)<3 then c.queuesign|| '0' ||b.BUSINESSID else c.queuesign||b.BUSINESSID end BUSINESSID,注意:oracle中||表示字符串拼接 8.orcale中top的用法(类似sql) select * from tablename where rownum=1; select * from ( select rownum rn, a.* from tablename a) t where t.rn between 2 and 10;注意: 9.DUAL 表 该表主要目的是为了保证在使用SELECT语句中的语句的完整性而提供的。 一般用于验证函数: select sysdate,to_char(sysdate, 'yyyy-mm-dd HH24:mi:ss' ) as time from dual; select sysdate from dual;10.查询某个字段返回长度--length()函数用法 select length(queueid) from tableName; select length(a.patname),a.* from tableName a11.oracle中substr函数的用法--instr(源字符串,目标字符串,起始字符串,匹配字符串)=返回要截取的字符串在源字符串中的位置,从字符的开始,只检索一次 --instr(string1,string2,index1,index2) 表示:要在string1的index1号位置,开始查找,第index2次,出现的string2 select instr( 'miaoying' , 'i' ,2,2) from dual;--返回6:也就是说:在 "miaoying" 的第2号位置开始,查找第二次出现的i的位置 select instr( 'miaoying' , 'k' ,2,2) from dual;--返回0:即如果查找不到,则返回0 select instr( 'miaoying' , 'i' ) from dual;--返回2 select instr( 'miaoying' , 'yi' ) from dual;--返回5:即 "yi" 的y的位置 select instr( 'miaoying' , 'i' ,-1,2) from dual;--返回2: |
select t.enroldate,t.calltype,
case
when to_char(t.enroldate,'hh24:mi:ss')<'13:00:00' then '1'
else '2'
end CAllTYPE
from qs_queuebusiness t
--查询数据、生成编号列、并根据指定列进行排序
select rownum rowno,a.* from (select * from qs_queuebusiness order by sortno) a
1、ROWNUM是伪列,必须要要有返回结果后,每条返回记录就会对应产生一个ROWNUM数值;
2、返回结果记录的ROWNUM是从1开始排序的,因此第一条始终是1;
3.如果需要添加编号列,则可使用容我ROWNUM列,例如:select rownum rowno, a.* from tablename a;
substr(字符串,截取开始位置,截取长度) //返回截取的字
substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串
substr('Hello World',1,1) //返回结果为 'H' *0和1都是表示截取的开始位置为第一个字符
substr('Hello World',2,4) //返回结果为 'ello'
substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符
测试:
select substr('Hello World',-3,3) value from dual;
执行效果如下所示:

12.instr()函数的用法?
13. oracle中系统函数?
terminal 当前会话客户所对应的终端标识符——返回当前登录用户
select sys_context('USERENV','terminal') from dual;
db_name 当前的数据库实例名称
select sys_context('USERENV','db_name') from dual;
language 语言——返回当前oracle字符集
select sys_context('USERENV','language') from dual;
session_user 当前会话所对应的数据库
select sys_context('USERENV','session_user') from dual;
current_schema:查看当前方案
select sys_context('USERENV','current_schema') from dual;
14.根据日期获取年龄
注意:四舍五入(非四舍五入,应为进一法)
--查看oracle数据库所有用户
SELECT * FROM all_users;
--查询oracle数据库系统当前用户下的所有对象
select * from tab;
--查看oracle数据库下当前用户的默认表空间
SELECT username, default_tablespace FROM user_users;
--查找用户的默认表空间命令为
SELECT username, default_tablespace FROM dba_users;
10.字符集设置
regedit==>
SIMPLIFIED CHINESE_CHINA.ZHS16GBK 或 AMERICAN_AMERICA.US7ASCII ......
11.数据库表数据合并(多行数据合并为一行)
select * from (select To_char(wmsys.wm_concat(a.appointnum))as appointnum,To_char(wmsys.wm_concat(a.direction))as direction
from queuedetail a where a.appointsid='015cfab6-9543-46b2-842f-534c4fef7b1e' ) b
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本