티스토리 뷰

 

카드 등록시 유효기간의 년도를 표현 하기 위해 아래의 쿼리를 사용 하였다. 카드의 유효기간은 카드사 마다 조금씩 다르지만, 대략 5년 정도라고 한다. 그래서 조금 여유 있기 현재년도를 기준으로 앞뒤로 10년 정도씩 잡았다.

 

WITH RECURSIVE TMP AS (
    SELECT DATE_ADD(NOW(), INTERVAL -10 YEAR) AS YEARS
     UNION ALL
    SELECT YEARS + INTERVAL 1 YEAR
      FROM TMP
     WHERE YEARS < DATE_ADD(NOW(), INTERVAL 10 YEAR)
)
SELECT DATE_FORMAT(YEARS, '%Y') AS code 
     , CONCAT(DATE_FORMAT(YEARS, '%Y'), '년') AS text
  FROM TMP;

 

결과

 

 

그리고 카드 유효기간의 월을 표현 하기 위해 아래의 쿼리를 사용 하였다. 오라클 처럼 세련된 쿼리가 없을까...

SELECT LPAD(TMP.months, 2, 0) AS code
     , CONCAT(TMP.months, '월') AS text
  FROM ( 
        SELECT 1 months 
        UNION 
        SELECT 2 
        UNION 
        SELECT 3 
        UNION 
        SELECT 4 
        UNION
        SELECT 5
        UNION
        SELECT 6
        UNION
        SELECT 7
        UNION
        SELECT 8
        UNION 
        SELECT 9 
        UNION 
        SELECT 10 
        UNION 
        SELECT 11 
        UNION 
        SELECT 12
) AS TMP
ORDER BY TMP.months

 

결과

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함