oracle的一些没注意到的细节

本文介绍 Oracle SQL 中日期格式的操作方法,包括如何使用 NEXT_DAY 函数获取指定工作日、TRUNC 函数进行日期截断以及 TO_CHAR 函数格式化日期。此外还探讨了子查询的应用场景及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:ORACLE设计与开发与DBA管理.pdf

1.SELECT next_day(hiredate,'星期五'),hiredate FROM emp;

日期是格式和字符集敏感的,如果是中文客户端就用'星期五' ,英文客户端就用'friday'.   我的是中文的PL/SQL Developer 英文不识别

2.trunc   数字的进位和截取是以小数点为中心,我们取小数点前或后的值,而日期的进位和截取是以年月日时分秒为中心的

3.to_char 格式内加入字符串请双引  fm去掉前置0

SELECT hiredate,to_char(hiredate,'fmyyyy"年"mm"月"dd"日"')FROM emp; 正确
SELECT hiredate,to_char(hiredate,'fmyyyy年mm月dd日')FROM emp;   错误   ORA-01821: 日期格式无法识别

4子查询返回多行,用=不可以,得用in ,  子查询返回多列,所以对比的列也要匹配

例如 SELECT deptno,ename,sal FROM emp WHERE (deptno,sal) IN(
                         SELECT deptno,MAX(sal) FROM emp GROUP BY deptno);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值