用sqlserver去实现查询某一旬的数据,用的day去实现。
例如:
if day('${endDT}')<=10
(SELECT stockBox,stockCard from IC_BalanceUpload where FinDT=dateAdd(dd, -day('${endDT}')+1, '${endDT}') and offStaID=${orgCode})
else IF day('${endDT}')<=20
(SELECT stockBox,stockCard from IC_BalanceUpload where FinDT=dateAdd(dd, -day('${endDT}')+11, '${endDT}') and offStaID=${orgCode})
ELSE
(SELECT stockBox,stockCard from IC_BalanceUpload where FinDT=dateAdd(dd, -day('${endDT}')+21, '${endDT}') and offStaID=${orgCode})
现在要转为oracle的,发现oracle中可以有两种实现sqlsever中类似于day函数。
第一种:
select extract(day from to_date('2015-4-29','yyyy-mm-dd')) as dd from dual;
第二种:
Select to_char(to_date('2015-4-29','yyyy-mm-dd'),'dd') as dd from dual;
相对于第二种来讲,第一种方法省去类型转换,更加简洁一点。相应的转换sqlserver中的month或者year函数的时候可以用yyyy和mm来代替。
关于oracle中根据日期取不同旬数据,我还是像第一段sql一样根据取日期去分别判断的,不知道除此之外还有没有更好的方法去实现,求推荐。ps:不用自定义函数之类。