SQL中有没有方法得到某天是它所在星期的第几天? 
 
我现在只能得到这天是星期几的字符串,然后用DECODE()将他转成相应的INT值,但现在的问题是如果字符集不同的话,得到的字符串也不同,那么DECODE就相当麻烦。 要求得到INT值。 

解决方案 »

  1.   

    我知道一个办法,不知道笨不笨: to_char()函数可以将日期转换成字符串,如: 
    to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss d') 
    其中第二个参数是日期格式,如果格式用'd',则可得到当天在星期里的天数, 
    范围从1到7,星期日为1,星期一为2.... to_number()函数可以将字符转换成数值。 对你的问题,举例如下: 
    select to_number( to_char(sysdate, 'd') ) from dual; 
    这个例子可以得到当天是本星期的第几天。
      

  2.   


    select to_number(to_char(sysdate,'D'))from dual; --5
     select to_char(sysdate,'D')from dual --5