Oracle时间格式的SQL语句

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dbeautifulLife/article/details/70144503
-12小时制系统当前时间(上午)
 
SQL>selectto_char(sysdate,'YYYY-MM-DD HH12:MI:SS AM')fromdual;
 
--24小时制系统当前时间(下午)
 
SQL>selectto_char(sysdate,'YYYY-MM-DD HH24:MI:SS PM')fromdual;
 
--当前时间的后一天时间
 
selectto_char(Sysdate+1,'YYYY-MM-DD HH24:MI:SS')fromdual;
 
--当前时间的后一个小时
 
selectto_char(Sysdate+1/24,'HH24:MI:SS')fromdual;
 
--当前时间的前一分钟
 
selectto_char(Sysdate-1/21/60,'HH24:MI:SS')fromdual;
 
--拿到某时间点之后的数据(做增量操作很有用) Date 类型时间
 
select* fromT_TABLE whereLAST_MODIFY_TIME>TO_DATE('2013-05-08 14:34:45','yyyy-mm-dd hh24:mi:ss')
 
--TIMESTAMP 时间戳类型的时间
 
select* fromT_TABLE  whereUPDATED_TIME > TO_TIMESTAMP('2013-08-08 13:30:00','yyyy-mm-dd hh24:mi:ss.ff')
 
--MySql的 Timestamp时间类型last_modified  ,datetime类型
 
select* fromt_XXXX  wherelast_modified>'2013-03-07 15:31:43'
 
--Oracle中插入带时间戳字段的数据
 
insertinto T_XXX (name1,name2,update_time)  values(?,?,Sysdate);   //update_time为Timestamp类型  Sysdate:系统当前时间
 
--插入带时间字段 to_date( ),TO_TIMESTAMP( )
 
insertinto T_XXX (name1,name2,update_time)  values(?,?,to_date('2013-2-28 15:42:56','yyyy-mm-dd hh24:mi:ss');
 
insertinto T_XXX (name1,name2,last_modify_time)  values(?,?,TO_TIMESTAMP('2013-08-08 14:30:00','yyyy-mm-dd hh24:mi:ss.ff'));




1.oracle 

从系统里取出一个月的第几周

 

select

 date_col,to_number(to_char(trunc(

sysdate

,

'yyyy'

),

'd'

)) 

year_week_day,first_day_week,week_no,week_no - first_day_week + 

1

 

week_no 

from

 ( 

  

select

 date_col, 

    

  to_number(to_char(trunc(

sysdate

,

'mm'

) + 

7

 - 

1

 ,

'ww'

)) 

first_day_week, 

    

  to_number(to_char(date_col + 

7

 - 

1

,

'ww'

)) week_no 

  

from

 ( 

    

select

 trunc(

sysdate

,

'mm'

) + 

rownum

 - 

1

 date_col 

   

from

 dba_objects 

   

where

 

rownum

 <= to_number(to_char(last_day(

sysdate

),

'dd'

))))

 

 

2

oracle

函数如何判断指定日期是当月的第几周的函数

 

得到某天在本年的第几周,

那么这一天的在本年的第几周

 

减去

 

这一天所在月的

第一天在本年的第几周再加一,就是这一天在当月的周数。

 

select

 ((

select

 to_char(to_date(

'2011-11-1'

,

'YYYY-MM-DD'

),

'iw'

from

 dual)-(

select

 

to_char(to_date(

'2011-11-1'

,

'YYYY-MM-DD'

),

'iw'

from

 dual))+

1

 

 

当月的第几周

 

from

 

 

dual

 

3

、在

oracle

中如何取得指定日期是该年的第几周

 

1

)判断指定的时间是该年的第几周:

 

例:

 

select

 to_char(to_date(

'2011-11-9'

,

'YYYY-MM-DD'

),

'iw'

from

 dual 

2

)判断当前时间是该年的第几周:

 

例:

 

select to_char(sysdate,'iw') from dual;  

4

、如何取得指定日期是星期几:

 

1

)得到当前日期是星期几

 

select

   to_char(

sysdate

'day '

)  

 

from

  

 dual

 

2

)得到指定日期是星期几

 

select

 

to_char(to_date(

'2011-11-9 

'

'yyyy-mm-dd 

'

), 

'day 

'

from

 

dual; 

3

)指定日期是一年当中的第几周和周几

 

select

    to_char(to_date( 

'2011-11-10 '

'yyyy-mm-dd '

), 

'day-iw '

)     

from

    

 dual; 

5

、总结

 

select

 

to_char(TO_DATE(

'20110101'

,

'YYYYMMDD'

) ,

'yyyyiw'

)  

as

 week, 

--oracle

当年的第几周

 

to_char(TO_DATE(

'20110101'

,

'YYYYMMDD'

) ,

'yyyyww'

)  

as

 week2,

--oracle

当年的第几周

 

to_char(TO_DATE(

'20110101'

,

'YYYYMMDD'

),

'yyyy'

as

 

year

,

--oracle

求第几年

 

to_char(TO_DATE(

'20110101'

,

'YYYYMMDD'

) ,

'yyyymm'

as

 

month

,

--oracle

当年的第几月

 

to_char(TO_DATE(

'20110101'

,

'YYYYMMDD'

),

'yyyyddd'

as

 

day

--oracle

求当年

的第几天

 

to_char(TO_DATE(

'20110401'

,

'YYYYMMDD'

) ,

'yyyyq'

as

 quarter

-- oracle

当年的第几季度

 

from

 dual



阅读更多
换一批

没有更多推荐了,返回首页