Oracle开发实战-日期函数


                                            Oracle开发实战-日期函数



文章内容会逐渐更新



1、对日期的常用操作


取得当前日期用sysdate;

如:

select sysdate from dual;

      *日期+数字=日期:表示若干天之后的日期;如:

select sysdate+8,sysdate+300 from dual;

      *日期-数字=日期:表示若干天之前的日期;

      如:

select sysdate-5,sysdate-600 from dual;

      *日期-日期=数字:如:求出每个雇员到今天为止的雇佣天数:

select ename,hiredate,sysdate-hiredate from emp;
      *求出本月最后一天的日期:

select last_day(sysdate) from dual;

      *求出下一个周一:

select next_day(sysdate,'星期一') from dual;

      *求出四个月后找到工作的时间( 若干月之后的日期):

select add_months(sysdate,4) from dual;

 
      *求出每个雇员到今天为止的雇佣月份(trunc表示截取):

select ename,hiredate,trunc(months_between(sysdate,hiredate)) from emp;


2、日期转化为字符串


select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual
                   

3、获取时间的年


select to_char(sysdate,'yyyy') as nowYear   from dual; 
                              

4、获取时间的月


select to_char(sysdate,'mm') as nowMonth from dual;


5、获取时间的日


select to_char(sysdate,'dd') as nowDay from dual;


6、获取时间的时


select to_char(sysdate,'hh24') as nowHour from dual;


7、获取时间的分


select to_char(sysdate,'mi') as nowMinute from dual;

8、获取时间的秒


select to_char(sysdate,'ss') as nowSecond from dual;

9、字符串转换为日期


select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual;

10、求某天是星期几


select to_char(to_date('2016-05-22','yyyy-mm-dd'),'day') from dual;

                   

11、求两个日期的相差天数


select floor(sysdate - to_date('20160405','yyyymmdd')) from dual;

                     


12、转换函数


to_char(字符串|列,格式字符串):将日期或数字变为字符串显示;

to_char(字符串|列,格式字符串):将日期或数字变为字符串显示;

如:

select to_char(sysdate,'yyyy-mm-dd') from dual;

或者:

<span style="font-size:18px;">select to_char(sysdate,'yyyy')year,to_char(sysdate,'mm')months,to_char(sysdate,'dd')day from dual; </span>

如果要消除前导0的话,可以加入一个"fm";  

如:

select to_char(sysdate,'fmyyyy-mm-dd') from dual;
to_date(字符串,格式字符串):将字符串变为date数据显示;

如:

select to_date('1990-08-07','yyyy-mm-dd') from dual;
to_number(字符串):将字符串变为数字显示;



初学oracle报表开发笔记 -- process report output('<HTML xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel">'); output('<head>'); output('<title>库存现有量报表</title>'); output('<style>'); output('body,table{font-size:13px;font-family:"Book Antiqua","Segoe UI", Tahoma, "Trebuchet MS", verdana, helvetica, arial, sans-serif, Georgia;}.text {mso-number-format:"\@";}.retnum {mso-number-format:"0\.00";}'); output('</style>'); output('</head>'); output('<body>'); output('<h2 align=center><B>库存现有量报表</B></h2>'); output('<table width=600 border=0 bordercolor=black>'); output(' <tr>'); output('<th align=right>OU:</th>'); output('<td align=left>' || g_ou_name || '</td>'); output('<th align=right>组织:</th>'); output('<td align=left>' || l_organization_name || '</td>'); output(' </tr>'); output('</table>'); output('<table width=1800 border=1 bordercolor=black>'); output(' <tr>'); output('<th rowspan=1 width=50>库存组织编码</th>'); output('<th rowspan=1 width=50>库存组织说明</th>'); output('<th rowspan=1 width=50>子库编码</th>'); output('<th rowspan=1 width=50>子库说明</th>'); output('<th rowspan=1 width=50>物品编码</th>'); output('<th rowspan=1 width=50>物品说明</th>'); output('<th rowspan=1 width=50>批次</th>'); output('<th rowspan=1 width=50>库存量 </th>'); output('<th rowspan=1 width=50>最小库存量</th>'); output('<th rowspan=1 width=50>最大库存量</th>'); output(' </tr>'); FOR cl IN (select OOD.ORGANIZATION_CODE, --库存组织编码 OOD.ORGANIZATION_NAME, --库存组织说明 MSA.SECONDARY_INVENTORY_NAME subinventory_code, --子库编码 MSA.DESCRIPTION subinventory_name, --子库说明 MSIV.SEGMENT1 item_no, --物品编码 MSIV.DESCRIPTION item_desc, --物品说明 MOQD.LOT_NUMBER, --批次 sum(MOQD.Primary_Transaction_Quantity) Primary_Transaction_Quantity, --库存量 MSIV.MIN_MINMAX_QUANTITY, --最小库存量 MSIV.MAX_MINMAX_QUANTITY --最大库存量 from mtl_onhand_quantities_detail moqd, ORG_ORGANIZATION_DEFINITIONS OOD, mtl_subinventories_all_v MSA, MTL_SYSTEM_ITEMS_VL MSIV where moqd.inventory_item_id = msiv.INVENTORY_ITEM_ID and moqd.organization_id = msiv.ORGANIZATION_ID and moqd.organization_id = ood.ORGANIZATION_ID and moqd.subinventory_code = msa.SECONDARY_INVENTORY_NAME and moqd.organization_id = msa.ORGANIZATION_ID group by OOD.ORGANIZATION_CODE, OOD.ORGANIZATION_NAME, MSA.SECONDARY_INVENTORY_NAME, MSA.DESCRIPTION, MSIV.SEGMENT1, MSIV.DESCRIPTION, MOQD.LOT_NUMBER, MSIV.MIN_MINMAX_QUANTITY, MSIV.MAX_MINMAX_QUANTITY) LOOP output(' <tr>'); output(' <td align=left><font size=1>' || cl.ORGANIZATION_CODE || '</font></td>'); output(' <td align=left><font size=1>' || cl.ORGANIZATION_NAME || '</font></td>'); output(' <td align=left><font size=1>' || cl.subinventory_code || '</font></td>'); output(' <td align=left><font size=1>' || cl.subinventory_name || '</font></td>'); output(' <td align=left><font size=1>' || cl.item_no || '</font></td>'); output(' <td align=left><font size=1>' || cl.item_desc || '</font></td>'); output(' <td align=left><font size=1>' || cl.LOT_NUMBER || '</font></td>'); output(' <td align=left><font size=1>' || cl.Primary_Transaction_Quantity || '</font></td>'); output(' <td align=left><font size=1>' || cl.MIN_MINMAX_QUANTITY || '</font></td>'); output(' <td align=left><font size=1>' || cl.MAX_MINMAX_QUANTITY || '</font></td>'); output(' </tr>');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值