<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p>日期函数<br /> 1、当前系统时间<br /> SELECT SYSDATE FROM dual ;<br /> 2、修改日期显示格式<br /> ALTER SESSION SET NLS_DATE_FORMAT=‘yyyy-mm-dd hh24:mi:ss’;<br /> SELECT SYSDATE FROM dual ;<br /> 3、日期函数运算<br /> 日期-数字=日期<br /> 日期+数字=日期<br /> 日期-日期=数字(天数)<br /> SELECT SYSDATE + 3 FROM dual ;三天之后的日期<br /> SELECT SYSDATE - 3 FROM dual ;三天之前的日期<br /> SELECT SYSDATE-hiredate FROM emp; 雇佣天数(出现小数)<br /> SELECT trunc(SYSDATE-hiredate)from emp;雇佣天数<br /> 4、日期操作<br /> (1)ADD_MONTHS(日期,数字) 在指定的日期上加入指定的月数,求出新的日期<br /> SELECT SYSDATE,ADD_MONTHS(SYSDATE, 3 ) FROM dual ;三个月之后的日期 ,<br /> SELECT SYSDATE,ADD_MONTHS(SYSDATE, -3 ) FROM dual ;三个月之前的日期 ,<br /> (2)MONTHS_BETWEEN(日期1,日期2) 两个日期间的月份数<br /> SELECT TRUNC(MONTHS_BETWEEN(sysdate,hiredate))FROM emp;雇佣总月数<br /> SELECT TRUNC(MONTHS_BETWEEN(sysdate,hiredate)/12)FROM emp;雇佣总年数<br /> 查看雇佣信息<br /> SELECT TRUNC(MONTHS_BETWEEN(sysdate,hiredate)/12) 已雇佣年数,<br /> TRUNC(MOD(MONTHS_BETWEEN(sysdate,hiredate),12)) 已雇佣月数,<br /> TRUNC(sysdate-ADD_MONTHS(hiredate,MONTHS_BETWEEN(sysdate,hiredate))) 已雇佣天数<br /> FROM emp ;<br /> (3)NEXT_DAY(日期,星期数) 求出下一个星期X的具体日期<br /> SELECT SYSDATE,NEXT_DAY(SYSDATE,‘星期日’) FROM dual ;下一个星期日<br /> (4)LAST_DAY(日期) 指定日期的最后一天的日期<br /> SELECT SYSDATE, LAST_DAY(SYSDATE) FROM dual ; 当前日期所在月的最后一天<br /> (5)EXTRACT(格式FROM数据) 抽取日期信息<br /> SELECT EXTRACT(YEAR FROM DATE ‘2001-09-19’) years ,<br /> EXTRACT(MONTH FROM DATE ‘2001-09-19’) months ,<br /> EXTRACT(DAY FROM DATE ‘2001-09-19’) days<br /> FROM dual ;<br /> (6)计算复杂时间间隔<br /> SELECT<br /> EXTRACT(DAY FROM TO_TIMESTAMP(‘1982-08-13 12:17:57’,‘yyyy-mm-dd hh24:mi:ss’)<br /> -TO_TIMESTAMP(‘1981-09-27 09:08:33’,‘yyyy-mm-dd hh24:mi:ss’)) days<br /> FROM dual ;</p>
讯享网
转换函数
(1)TO_CHAR(日期|数字|列,转换格式)
将制定的数据按照指定的格式变为字符串型
SELECT SYSDATE 当前系统时间,TO_CHAR(SYSDATE,‘YYYY-MM-DD’) 格式化日期,
TO_CHAR(SYSDATE,‘YYYY-MM-DD HH24:MI:SS’) 格式化日期时间,
TO_CHAR(SYSDATE,‘FMYYYY-MM-DD HH24:MI:SS’) 去掉前导0的日期时间
FROM dual ;
(2)TO_DATE(字符串|列,转换格式)
将制定的字符串按照指定的格式变为日期型
SELECT TO_DATE(‘1979-09-19’,‘YYYY-MM-DD’) FROM dual ;
SELECT TO_TIMESTAMP(‘1981-09-27 18:07:10’,‘YYYY-MM-DD HH24:MI:SS’) datetime
FROM dual ;
(3)TO_NUMBER(字符串|列)
将指定的数据类型变为数字型
SELECT TO_NUMBER(‘09’) + TO_NUMBER(‘19’) 加法计算,
TO_NUMBER(‘09’) * TO_NUMBER(‘19’) 乘法计算
FROM dual ;
通用函数
(1)NVL(数字|列,默认值)
如果现实的数字是null,则使用默认值表示
SELECT NVL(null,0),NVL(3,0) FROM dual ; 如果是NULL输出后面的默认值,如果不是NULL输出第一个参数值

(2)NVL2(数字|列,返回结果1,返回结果2)
判断指定的列是否为null,如果不为null则返回1,如果为空则返回结果2.
当comm不为NULL输出sal+comm,如果为NULL输出sal。

(3)NULLIF(表达式1,表达式2)
比较表达式1和表达式2的结果是否相等,如果相等返回NULL,如果不等返回表达式1

(4)DECODE(列|值,判断值1,显示结果1,判断值2,显示结果2…)如果现实的数字是null,则使用默认值表示
job为CLERK 显示业务员,job为SALESMAN显示销售人员…

(5)CASE 列| 数值WHEN 表达式1 THEN 显示结果1…ELSE 表达式n…用于实现多条件判断
当job为CLERK sal1.1 当job 为SALESMAN sal1.2…

(6)COALESCE(表达式1,表达式2,…,表达式n)
将表达式逐个判断,如果表达式1的内容是null,则显示表达式2,如果表达式2的内容是null,则显示表达式3
SELECT comm ,COALESCE(comm,100,2000) , COALESCE(comm,null,2000) FROM emp;
当comm为NULL显示100,当comm和null显示2000


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/172628.html