8.2에서 to_char 형식화로 날짜에 대한 자국어화가 가능한 'TM' 이라는 접두사가 생겼습니다.
postgres=# select to_char(now(),'YYYY. TMMon. FMDD. (TMDy)');
to_char
--------------------
2006. 12. 19. (화)
(1건 있음)
postgres=# select to_char(now(),'YYYY년 TMMonth FMDD일 TMDay');
to_char
-------------------------
2006년 섣달 19일 화요일
(1건 있음)
그래서 위에서 처럼 간단히 만들어 보았는데,
한 가지 상의해야할 부분이 생겨서요.
현재 TM 접두사를 쓸 수 있는 포멧이 '월' 과, '요일' 두개입니다.
MONTH |
full uppercase month name (blank-padded to 9 chars) |
Month |
full mixed-case month name (blank-padded to 9 chars) |
month |
full lowercase month name (blank-padded to 9 chars) |
MON |
abbreviated uppercase month name (3 chars in English, localized lengths vary) |
Mon |
abbreviated mixed-case month name (3 chars in English, localized lengths vary) |
mon |
abbreviated lowercase month name (3 chars in English, localized lengths vary) |
MM |
month number (01-12) |
DAY |
full uppercase day name (blank-padded to 9 chars) |
Day |
full mixed-case day name (blank-padded to 9 chars) |
day |
full lowercase day name (blank-padded to 9 chars) |
DY |
abbreviated uppercase day name (3 chars in English, localized lengths vary) |
Dy |
abbreviated mixed-case day name (3 chars in English, localized lengths vary) |
dy |
abbreviated lowercase day name (3 chars in English, localized lengths vary) |
요렇게 인데, 일단 대소문자 구분을 하지 않으니, 대소문자 문제는 고려 대상에서 제외하고,
먼저 day, dy 문제는 '일요일', '일' 로 각각 표기하면 별 문제가 없어 보이고요.
문제는 month 와 mon 인데,
일단 한국표준에서는
'2006년 12월 19일 화요일' - 긴 표현
'2006. 12. 19. (화)' - 짧은 표현
이 표준이라네요.
그런데, 일단 기존 방식으로 저 표기법을 충분히 만들어 낼 수 있으니,
TM 에 대해서는 약간 달리 생각했습니다.
Mon 에 대해서는 1, 2 .... 12로 기존 것을 썼고, (유닉스 계열 한국어 LC_TIME 표기법을 따름)
Month 에 대해서는 한글학회의 달이름을 가져왔습니다
'정월, 이월... 동짓달, 섣달'
어차피 서버 메시지를 한글로 해두고 운영하는 경우는 극히 드물고,
게다가 거의 대부분의 RDBMS에서 쓰고 있지 않은 접두어이고 하니,
굳이 한국어 표준을 따르지 않아도 될 것 같습니다.
단지 숨은 기능으로 남겨두기에 좋은 기능 같습니다.
괜찮겠지요?
이곳에서 별말 없으면 다음 버전에 적용될 예정입니다.
욕심이 생기는게 있다면,
'병술년 섣달 열아흐렛날'
이런 표기법을 지원했으면 참 좋겠네요. ^^
(함수 하나 만들어봐야지)
|