[MariaDB] 날짜 데이터 표시 포멧

코딩하는 꽁지·2023년 11월 2일
0

데이터베이스

목록 보기
11/14
post-thumbnail

NOW()

MariaDB에서 지금 날짜 및 시간 정보를 확인하고 싶다면

SELECT NOW()
FROM DUAL;

--------------------
2023-11-03 02:41:02.000

을 통해 알 수 있다.

SQL에는 날짜 자료형도 있다. 따라서 날짜 자료형을 다루는 함수도 존재한다.

날짜 → 문자열

SELECT NOW(),
	DATE_FORMAT(NOW(), '%Y') Year,
	DATE_FORMAT(NOW(), '%M') Month,
	DATE_FORMAT(NOW(), '%Y.%m.%d') Date
FROM DUAL;

-------------------------------------------------------
|NOW()                      | Year  | Month     | Date       |
|2023-11-03 03:12:54.000	| 2023	| November	| 2023.11.03 |

DATE_FORMAT 함수를 통해 날짜 자료형을 문자열로 변환할 수 있다.

문자열 → 날짜

SELECT "20230311",
	STR_TO_DATE("20230311", "%Y%m%d")
FROM DUAL;

---------------------------------------
20231103	2023-03-11

STR_TO_DATE 함수를 통해 문자열을 날짜 자료형으로 변활할 수 있다.

날짜 연산

SELECT "20230311",
	DATE_ADD(STR_TO_DATE("20230311", "%Y%m%d"), INTERVAL 1 MONTH) 
FROM DUAL;

------------------------------------------------------------------
2023-04-11

DATE_ADD 함수를 통해 날짜 연산이 가능하다.
위 코드는 2023년11월03일 데이터에 1달을 더해준 것이다.

응용

SELECT "20231103",
	STR_TO_DATE("20231103", "%Y%m%d"),
	DATE_ADD(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y-%m-01'), '%Y-%m-%d'), INTERVAL 1 MONTH), INTERVAL -1 DAY) 
FROM DUAL;

--------------------------------------------------------
2023-11-03	2023-11-30

해당 월의 마지막 날이 몇 일인지 구하는 연산이다.
우선 STR_TO_DATE(DATE_FORMAT(NOW(), '%Y-%m-01'), '%Y-%m-%d')을 통해 오늘 날짜 정보를 구한 후, 해당 1일로 만들어준다.
그 다음 DATE_ADD 함수를 통해 +1달을 해주어 다음 달 1일로 만들어준다.
마지막으로 DATE_ADD(..., INTERVAL -1 DAY) 통해 1일 전으로 변환해주면 이전 달의 마지막 날을 알 수 있게 된다.

profile
프로그래밍으로 온 세상을 떠들썩 하게~🪼

0개의 댓글