Friday, January 21, 2011

SQL Quaries for Calender and dates


/* Days week calender */
SELECT INITCAP(TRIM(TO_CHAR(dat,   'month'))) || ', ' || TO_CHAR(SYSDATE,   'yyyy') MONTH,
  MAX(DECODE(TO_CHAR(dat,   'd'),   2,   TO_CHAR(dat,   'dd'))) mon,
  MAX(DECODE(TO_CHAR(dat,   'd'),   3,   TO_CHAR(dat,   'dd'))) tue,
  MAX(DECODE(TO_CHAR(dat,   'd'),   4,   TO_CHAR(dat,   'dd'))) wed,
  MAX(DECODE(TO_CHAR(dat,   'd'),   5,   TO_CHAR(dat,   'dd'))) thu,
  MAX(DECODE(TO_CHAR(dat,   'd'),   6,   TO_CHAR(dat,   'dd'))) fri,
  MAX(DECODE(TO_CHAR(dat,   'd'),   7,   TO_CHAR(dat,   'dd'))) sat,
  MAX(DECODE(TO_CHAR(dat,   'd'),   1,   TO_CHAR(dat,   'dd'))) sun
FROM
  (SELECT TRUNC(SYSDATE,    'y') + ROWNUM -1 dat,
     TO_CHAR(TRUNC(SYSDATE,    'y') + ROWNUM -1,    'iw') woy
   FROM user_objects
   WHERE ROWNUM <=(ADD_MONTHS(TRUNC(SYSDATE,    'y'),    12) -TRUNC(SYSDATE,    'y')))
GROUP BY TO_CHAR(dat,   'month'),
  woy,
  TO_CHAR(dat,   'mm')
  
/*First and Last day of all month of Current year*/ 
    select MON ,First_day,last_day(First_day) last_day
    from ( 
SELECT TO_CHAR(TRUNC(SYSDATE,    'y') + ROWNUM -1,    'MM') mon ,
      TO_CHAR(TRUNC(SYSDATE,    'y') + ROWNUM -1,    'DD') DAy,
      TRUNC(SYSDATE,    'y') + ROWNUM -1 First_day
   FROM user_objects
   WHERE ROWNUM <=(ADD_MONTHS(TRUNC(SYSDATE,    'y'),    12) -TRUNC(SYSDATE,    'y'))) cal
   where  DAY=01                                                                                                                                                            
/*First and Last day of all month of Current Fiscal year*/ 
    select MON ,First_day,last_day(First_day) last_day
    from ( 
SELECT TO_CHAR(TRUNC(SYSDATE,    'y') + ROWNUM -1,    'MM') mon ,
      TO_CHAR(TRUNC(SYSDATE,    'y') + ROWNUM -1,    'DD') DAy,
      TRUNC(SYSDATE,    'y') + ROWNUM -1 First_day
   FROM user_objects
   WHERE ROWNUM <=(ADD_MONTHS(TRUNC(SYSDATE,    'y'),    15) -TRUNC(SYSDATE,    'y'))
   ) cal
   where  DAY=01 and First_day >(ADD_MONTHS(TRUNC(SYSDATE,    'y'),    2) + 30)

/*Calender*/
SELECT TRUNC(SYSDATE,    'y') + ROWNUM -1 dat,
     TO_CHAR(TRUNC(SYSDATE,    'y') + ROWNUM -1,    'iw') woy
   FROM PS_RS_SO_LINE

/*Get a specific Month*/
Select ADD_MONTHS(TRUNC(SYSDATE,    'y'),    2) from DUAL

/*Calender ( all date of current year)*/
   SELECT TRUNC(SYSDATE,    'y') + ROWNUM -1 dat,
     TO_CHAR(TRUNC(SYSDATE,    'y') + ROWNUM -1,    'iw') woy
   FROM PS_RS_SO_LINE
   WHERE ROWNUM <=(ADD_MONTHS(TRUNC(SYSDATE,    'y'),    12) -TRUNC(SYSDATE,    'y'))

/* First day of current year*/
   Select TRUNC(SYSDATE,    'y') from DUAL

No comments:

Post a Comment