티스토리 뷰

SQL 날짜 포맷

SQL에서 날짜와 시간을 다루는 것은 매우 중요합니다.

날짜 데이터는 다양한 형식으로 저장되고 표시될 수 있기 때문에, 적절한 날짜 포맷팅 방법을 이해하는 것이

필수적입니다.

 

 

기본 문법

SQL에서 날짜를 포맷팅하기 위해서는 일반적으로 DATE_FORMAT (MySQL),

TO_CHAR (Oracle, PostgreSQL) 등의 함수를 사용합니다.

 

  • MySQL
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') AS formatted_date;
 

- 위의 예제에서는 현재 날짜와 시간을 YYYY-MM-DD 형식으로 포맷팅합니다.

 

 

  • Oracle / PostgreSQL
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') AS formatted_date FROM dual;
 

- Oracle과 PostgreSQL에서는 TO_CHAR 함수를 사용하여 날짜를 포맷합니다.

 

 

포맷 코드 설명

날짜 포맷팅에서 자주 사용하는 포맷 코드는 다음과 같습니다:

 

  • %Y 또는 YYYY: 4자리 연도 (예: 2024)
  • %y 또는 YY: 2자리 연도 (예: 24)
  • %m 또는 MM: 2자리 월 (01에서 12)
  • %d 또는 DD: 2자리 일 (01에서 31)
  • %H 또는 HH24: 24시간제 시 (00에서 23)
  • %i 또는 MI: 분 (00에서 59)
  • %s 또는 SS: 초 (00에서 59)

 

예제

  • MySQL
SELECT DATE_FORMAT('2024-09-11 14:35:22', '%Y-%m-%d %H:%i:%s') AS formatted_date_time;
 

 

  • Oracle
SELECT TO_CHAR(TO_DATE('2024-09-11 14:35:22', 'YYYY-MM-DD HH24:MI:SS'), 
       'YYYY-MM-DD HH24:MI:SS') AS formatted_date_time FROM dual;
 

- Oracle에서는 TO_DATE 함수를 사용하여 문자열을 날짜로 변환한 후,

TO_CHAR를 사용하여 다시 문자열 형식으로 포맷팅할 수 있습니다.

 

 

 

Good 사용법

1. 서버 사이드 포맷팅: SQL에서 날짜를 적절히 포맷팅하여 서버에서 클라이언트로 데이터를 전달하는 것이 좋습니다. 이렇게 하면 클라이언트에서 별도로 포맷팅을 처리할 필요가 없어집니다.

SELECT DATE_FORMAT(order_date, '%Y-%m-%d') AS order_date FROM orders;
 

2. 일관된 포맷 사용: 모든 쿼리에서 일관된 날짜 포맷을 사용하는 것이 유지보수에 유리합니다.

 

 

 

Bad 사용법

1. 하드코딩된 포맷 문자열: 다양한 데이터베이스 시스템에서 작업할 경우, 특정 DBMS에 종속적인 포맷 문자열을 사용하는 것은 피해야 합니다. 예를 들어, MySQL에서 사용되는 % 포맷 코드는 다른 시스템에서 인식되지 않을 수 있습니다.

SELECT DATE_FORMAT(order_date, '%Y/%m/%d') AS order_date FROM orders;
 

2. 문자열로 날짜 저장: 날짜 데이터를 텍스트 형식으로 저장하고, 쿼리에서 이를 날짜로 변환하려는 시도는 피해야 합니다. 이는 성능 저하를 일으킬 수 있으며, 데이터 무결성을 해칠 수 있습니다.

SELECT TO_CHAR('2024-09-11', 'YYYY-MM-DD') FROM orders;
 
 

[DB] SQL 집계 함수 사용 방법 및 예제

SQL 집계 함수 기본 문법집계 함수는 여러 행의 값을 집계하여 단일 결과를 반환하는 함수입니다.자주 사용되는 집계 함수로는 COUNT(), SUM(), AVG(), MIN(), MAX() 등이 있습니다.이 함수들은 일반적으로

worldalltip.com

 

반응형