복붙노트

[SQL] SQL에서 주 번호를 추출하는 방법

SQL

SQL에서 주 번호를 추출하는 방법

나는 다음과 앙트레를 가지고 VARCHAR2 타입의 transdate 열이

01/02/2012
01/03/2012

기타

나는 TO_DATE 기능을 사용하여 다른 열에서 날짜 형식에 변환. 이것은 내가 가진 형식입니다.

01-JAN-2012
03-APR-2012

나는 weekno를 추출하기 위해 노력하고있어 때, 나는 모든 널 (null) 값을 얻고있다.

TABLENAME에서 weekno으로 ( 'w'TO_DATE (TRANSDATE))를 선택 TO_CHAR.

null
null

어떻게 위의 형식으로 날짜로부터 weekno 얻으려면?

해결법

  1. ==============================

    1.진정한 날짜 데이터 타입으로 VARCHAR2 날짜를 변환 한 후, 다음 원하는 마스크 VARCHAR2로 다시 변환 :

    진정한 날짜 데이터 타입으로 VARCHAR2 날짜를 변환 한 후, 다음 원하는 마스크 VARCHAR2로 다시 변환 :

    to_char(to_date('01/02/2012','MM/DD/YYYY'),'WW')
    

    당신이 숫자 데이터 타입의 주 번호를 원한다면, 당신은 TO_NUMBER의 문 ()를 포장 할 수 있습니다

    to_number(to_char(to_date('01/02/2012','MM/DD/YYYY'),'WW'))
    

    그러나 고려해야 할 몇 주 번호 옵션이 있습니다 :

    WW  Week of year (1-53) where week 1 starts on the first day of the year and continues to the seventh day of the year.
    W   Week of month (1-5) where week 1 starts on the first day of the month and ends on the seventh.
    IW  Week of year (1-52 or 1-53) based on the ISO standard.
    
  2. ==============================

    2.에 대한 'IW' 'W'교체하려고합니다. 예를 들면 :

    에 대한 'IW' 'W'교체하려고합니다. 예를 들면 :

    SELECT to_char(to_date(TRANSDATE, 'dd-mm-yyyy'), 'iw') as weeknumber from YOUR_TABLE;
    
  3. ==============================

    3.

    Select last_name, round (sysdate-hire_date)/7,0) as tuner 
      from employees
      Where department_id = 90 
      order by last_name;
    
  4. ==============================

    4.사용 'YYYY-MM-DD'당신이 당신의 대답에 지정된 2 날짜 형식을 사용하는 경우. 전의:

    사용 'YYYY-MM-DD'당신이 당신의 대답에 지정된 2 날짜 형식을 사용하는 경우. 전의:

    to_date(<column name>,'dd-mon-yyyy')
    
  5. from https://stackoverflow.com/questions/16530044/how-to-extract-week-number-in-sql by cc-by-sa and MIT license