이번에는 날짜형 함수와 변환형 함수에 대해서 설명 드리겠습니다.

    날짜형 함수

    날짜형 함수 설명 실행예제 실행결과
    sysdate() 현재 날짜와 시각을 출력한다 select sysdate() from dual 2019-05-22 10:00:00
    current_date

    현재 날짜를 출력한다.

    (Redshift)

    select current_date from dual 2019-05-22
    now()

    현재 날짜를 출력한다

    (SQL, oracle)

    select now() from dual 2019-05-22 10:00:00

    날짜형 함수중에 현재의 날짜를 표현하는 형식을 사용하는 경우가 많이 있습니다. 

    예를 들어 오늘날짜에서 일주일전의 결과를 볼때, 어제의 결과를 볼때 등에서 많이 사용이 됩니다. 

    그중 날짜형 함수는 위의 3가지 방법으로 가장 많이 사용하고, 사용DB에 따라 조금씩 다르니 참고하시기 바랍니다. 

     

    변환형 함수

    변환함수 설명 실행예제
    to_number() 문자열을 숫자로 변환한다 to_number(문자열)
    to_char() 숫자나 날짜를 주어진 Format의 형태로 문자열 타입으로 변환한다 to_char(컬럼, format)
    ro_date() 문자열을 주어진 Format형태로 날짜타입으로 변환한다 to_date(컬럼, format)
    date_format()

    숫자나 날짜를 주어진 Format형태로 문자열 타입으로 변환한다.

    Mysql의 경우 To_char 사용이 불가능하여 해당 함수로 사용하여야 한다.

    date_format(컬럼, format)

    To_char의 경우 Redshift에서는 사용이 가능합니다. 

    하지만 Mysql에서는 사용이 불가능 하네요.. 

    Mysql에서는 동일한 기능이 date_format입니다. 

     

    To_char사용형식

    저는 개인적으로 to_char함수를 가장 많이 사용합니다. 

    그 이유는 날짜형식으로 들어가있는 컬럼들은 모두 2019-05-22 10:00:00이런 형태로 되어 있다보니,

    Where에서 날짜를 넣으려고 하면 시간,분,초를 넣어야 해서 귀찮습니다. 

    그래서 변환형 함수를 사용하여 년,월,일만 넣어서 검색할수 있게끔 변환해서 사용을 합니다. 

    변환형 함수 실행예제 실행결과
    to_char() to_char(createdat,'yyyy-mm-dd') 2019-05-01
    to_char() to_char(createdat,'yyyy/mm/dd') 2019/05/01
    to_char() to_char(createdat,'yyyy-mm-dd hh') 2019-05-01 10
    to_char() to_char(createdat,'yyyymmdd') 20190501

    예를 들어 이렇게 사용합니다. 

    where to_char(current_date,'yyyy-mm-dd') between '2019-05-01' and '2019-05-05'

    Data_format형식

    Mysql에서는 to_char()이 없기 때문에 date_format를 사용해야합니다. 

    주의해야할 부분은 Data_format같은 경우 format부분에 대소문자를 구분합니다.

    대문자를 넣었을때와, 소문자를 넣었을때가 틀리므로 잘 구분해야 합니다.

    변환함수 실행예제 실행결과
    date_format() date_format(sysdate(),'%y-%m-%d') 19-05-01
    date_format() date_format(sysdate(),'%Y-%m-%d') 2019-05-01
    date_format() date_format(sysdate(),'%Y-%M-%d') 2019-May-01

    년도에서 y를 소문자로 쓴경우 뒤에 두자리만 표기가 됩니다. 

    그리고 대문자로 쓴경우 4자리로 표기가 되구요.

    심지어 월에서 대문자를 사용하면 영문으로 표기가 됩니다. 

    이외에 표기 방법은 아래의 이미지를 참고하시기 바랍니다.

    형식 설명
    %Y 4자리 연도
    %y 2자리 연도
    %m 2자리(00-12)
    %c 1자리, 10보다 작을 경우(1-12)
    %M 이름(January,February...)
    %b 줄인 이름(Jan,Feb)
    %d 2자리
    %e 1자리, 10보다 작을경우(0-31)
    %D 1st, 2nd...

     

    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기