카테고리 없음

다양한 시간 처리 방법들

멋쟁이천재사자 2023. 7. 24. 09:49

어제 리눅스 크론탭 실습을 하다가 시간 처리 패턴을 좀 외워볼까 생각이 들었다.

https://youtu.be/q9luETpLMfg

어제도 듣고 여러번 보았는데 오늘 또 출근하며 귀로만 들었다. 귀로만  듣다 보니 월과 분에 대한 정확한 구문이 궁금하다.

관련 부분에서 눈을 떠서 확인해보았다.
%m 이 월이고 %M이 분이다.


매뉴얼을 보자.

https://manpages.debian.org/bookworm/coreutils/date.1.en.html

date(1) — coreutils — Debian bookworm — Debian Manpages

date - print or set the system date and time SYNOPSIS¶ date [OPTION]... [+FORMAT] date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] DESCRIPTION¶ Display date and time in the given FORMAT. With -s, or with [MMDDhhmm[[CC]YY][.ss]], set the date and time.

manpages.debian.org


%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

DATEPART (Transact-SQL) - SQL Server

Transact-SQL reference for the DATEPART function. This function returns an integer corresponding to the datepart of a specified date.

learn.microsoft.com

오라클은 문자열로 생각해서 필요한 위치에서 원하는 갯수를 잘라 쓰는 방식이다. snort 의 offset depth 도 실습은 아직 못해봤지만 동일한 방식인 것 같다.

이에 비하면 mssql 방식은 짜증 만땅이다. 레퍼런스를 꼭 다시 찾아서 참고해야만 sql 작성이 가능하다.


MySql 구문도 확인해보자.
https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format

MySQL :: MySQL 5.7 Reference Manual :: 12.7 Date and Time Functions

12.7 Date and Time Functions This section describes the functions that can be used to manipulate temporal values. See Section 11.2, “Date and Time Data Types”, for a description of the range of values each date and time type has and the valid formats

dev.mysql.com

나의 기억으로는 MySql 도 리눅스와 비슷했던 것 같았는데 오랜만에 세세하게 찾아보니 희한하다.

분은 %i 다.
%M 은 January 같은 Month Name
%m 은 00 에서 12까지 월이다.


외우는 것은 어려워 보인다.
통일성이 안보이고 제각각이다 .

필요할 때 매뉴얼을 찾아보는 것이 정답이겠다.