어제 리눅스 크론탭 실습을 하다가 시간 처리 패턴을 좀 외워볼까 생각이 들었다.
https://youtu.be/q9luETpLMfg
어제도 듣고 여러번 보았는데 오늘 또 출근하며 귀로만 들었다. 귀로만 듣다 보니 월과 분에 대한 정확한 구문이 궁금하다.
관련 부분에서 눈을 떠서 확인해보았다.
%m 이 월이고 %M이 분이다.
매뉴얼을 보자.
https://manpages.debian.org/bookworm/coreutils/date.1.en.html
%m - month (01..12)
%M - minute (00..59)
소문자가 월이고 대문자가 분이다.
다른 것도 보자.
%H - hour (00..23)
%I - hour (01..12)
오라클과 HANA DB는 24시 기준의 시간 표현을 HH24라고 한다. 리눅스에서는 %H 란다.
12시 기준의 시간 표현을 HH로 하는 것은, %I 란다. 생뚱 맞은 I 는 또 뭘까.
sql 을 주로 다루었던 나에게는 %H %I 는 생뚱 맞은 느낌이다.
실무에서는 필요할 때 복붙해쓰면 되기에 굳이 외우려는 생각을 단 한번도 해보지 않았었다.
다만 오라클에서 월은 mm 분은 mi 로 구분하는 것이 직관적이고 쉬워서 그냥 자연스레 외워진 것이고, 요놈의 %방식의 표현들은 왜 이렇게 복잡하지라는 불만만 있었다.
db 종류에 따라 또는 리눅스에서의 시간 처리는 비슷하면서도 조금씩 다르다.
별일 아니지만 오랜만에 새로운 환경에서 다시 쓸 때는 워밍업하는데 시간이 꽤 소요된다. 보안상 인터넷이라도 안되는 환경에서 이런 일이 필요하면 순간적으로 꽤나 당황스럽곤 하다.
mssql 의 datepart 부분을 보자.
https://learn.microsoft.com/en-us/sql/t-sql/functions/datepart-transact-sql?view=sql-server-ver16
오라클은 문자열로 생각해서 필요한 위치에서 원하는 갯수를 잘라 쓰는 방식이다. snort 의 offset depth 도 실습은 아직 못해봤지만 동일한 방식인 것 같다.
이에 비하면 mssql 방식은 짜증 만땅이다. 레퍼런스를 꼭 다시 찾아서 참고해야만 sql 작성이 가능하다.
MySql 구문도 확인해보자.
https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format
나의 기억으로는 MySql 도 리눅스와 비슷했던 것 같았는데 오랜만에 세세하게 찾아보니 희한하다.
분은 %i 다.
%M 은 January 같은 Month Name
%m 은 00 에서 12까지 월이다.
외우는 것은 어려워 보인다.
통일성이 안보이고 제각각이다 .
필요할 때 매뉴얼을 찾아보는 것이 정답이겠다.