Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 LOWER()와 DATE_FORMAT()로 소문자 am/pm 시간 형식 지정하기

MySQL에서 시간을 소문자 am/pm 형식으로 표시하려면 LOWER() 함수와 DATE_FORMAT() 함수를 함께 사용하면 됩니다. DATE_FORMAT()은 기본적으로 대문자 AM/PM을 반환하기 때문에, LOWER()로 감싸서 소문자로 변환하는 것이 핵심입니다.

1. 테이블 생성

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table formatTime
   -> (
   -> LoginTime time
   -> );
Query OK, 0 rows affected (0.56 sec)

LoginTime이라는 TIME 타입의 컬럼을 가진 formatTime 테이블이 성공적으로 생성되었습니다.

2. 데이터 삽입

INSERT 명령을 사용하여 테이블에 레코드를 삽입합니다.

mysql> insert into formatTime values('12:40:34');
Query OK, 1 row affected (0.20 sec)

mysql> insert into formatTime values('14:10:58');
Query OK, 1 row affected (0.13 sec)

mysql> insert into formatTime values('16:56:40');
Query OK, 1 row affected (0.18 sec)

mysql> insert into formatTime values('10:12:14');
Query OK, 1 row affected (0.16 sec)

총 4개의 시간 데이터가 정상적으로 입력되었습니다.

3. 저장된 데이터 확인

SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.

mysql> select * from formatTime;

위 쿼리는 다음과 같은 결과를 출력합니다.

+-----------+
| LoginTime |
+-----------+
| 12:40:34  |
| 14:10:58  |
| 16:56:40  |
| 10:12:14  |
+-----------+
4 rows in set (0.00 sec)

4. 소문자 am/pm 형식으로 변환

이제 LOWER()와 DATE_FORMAT()을 조합하여 시간을 소문자 am/pm 형식으로 출력하는 쿼리를 실행해 보겠습니다.

mysql> select LOWER(DATE_FORMAT(LoginTime,'%l:%i %p')) from formatTime;

실행 결과는 다음과 같습니다.

+------------------------------------------+
| LOWER(DATE_FORMAT(LoginTime,'%l:%i %p')) |
+------------------------------------------+
| 12:40 pm                                 |
| 2:10 pm                                  |
| 4:56 pm                                  |
| 10:12 am                                 |
+------------------------------------------+
4 rows in set (0.04 sec)

형식 지정자 설명

쿼리에 사용된 각 형식 지정자의 의미는 다음과 같습니다.

  • %l: 선행 0이 없는 12시간제 시간 (예: 1~12)
  • %i: 분 (00~59)
  • %p: 오전/오후를 나타내는 AM 또는 PM

DATE_FORMAT()이 반환하는 'PM', 'AM' 문자열을 LOWER() 함수로 감싸면 'pm', 'am'처럼 모두 소문자로 출력되는 것을 확인할 수 있습니다. 이 방법은 로그인 기록이나 게시글 작성 시간 등을 사용자 친화적인 형태로 표시할 때 유용하게 활용할 수 있습니다.