logo

SQL의 TIME 데이터 유형

  • 데이터베이스의 SQL 테이블에 시간을 저장해야 하는 경우 SQL에는 다양한 시나리오가 있습니다.
  • SQL 테이블에 시간을 저장하려면 먼저 시간을 저장할 수 있는 열을 테이블에 생성해야 합니다.
  • 테이블의 열에 시간을 저장하려면 TIME 데이터 유형의 열을 생성해야 합니다.
  • TIME 데이터 유형은 기본적으로 'HH:MM:SS' 형식으로 시간을 저장합니다.
  • SQL에서 SELECT 문을 사용하면 SQL 테이블의 열에서 시간을 검색할 수 있습니다.
  • 저장된 기본 형식으로 시간을 검색하는 것과 함께 SQL에는 보다 읽기 쉬운 형식으로 시간을 검색할 수 있는 TIME_FORMAT() 함수가 있습니다.
  • 테이블에 저장된 기본 형식(예: 'HH:MM:SS')으로 시간을 검색할 수 있으며, 시, 분, 초 등 시간의 특정 부분을 검색할 수도 있습니다. 요구사항에 따라 적절한 매개변수를 선택하고 이를 TIME_FORMAT() 함수에 전달합니다. 시간은 12시간 및 24시간 형식으로 검색할 수도 있습니다.
  • AM/PM 뒤에 시간을 인쇄할 수도 있습니다.

이 개념을 더 명확하게 이해하기 위해 몇 가지 실제 사례를 살펴보겠습니다. 우리는 모든 쿼리를 작성하기 위해 MySQL 데이터베이스를 사용할 것입니다.

데이터베이스에 테이블을 생성하려면 먼저 테이블을 생성하려는 데이터베이스를 선택해야 합니다.

 mysql> USE dbs; 

그런 다음 테이블을 생성하기 위해 다음 쿼리를 작성합니다.

 mysql> CREATE TABLE items_tbl(ID INT, Item_Name VARCHAR(20), Item_Quantity INT, Item_Price INT, Item_OrderDate DATE, Item_OrderTime TIME); 

SQL의 TIME 데이터 유형

위 쿼리에서 ItemOrderTime이라는 열은 이 열의 데이터 유형이 'TIME'으로 설정되어 있으므로 시간을 저장합니다.

이제 items_tbl 테이블에 레코드를 삽입하는 쿼리를 작성하겠습니다.

팩토리 메소드 디자인 패턴
 mysql> INSERT INTO items_tbl(ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, Item_OrderTime) VALUES(1, 'Soap', 5, 200, '2021-07-08', '04:13:52'), (2, 'Toothpaste', 2, 80, '2021-07-10', '18:09:01'), (3, 'Pen', 10, 50, '2021-07-12', '12:00:02'), (4, 'Bottle', 1, 250, '2021-07-13', '15:07:05'), (5, 'Brush', 3, 90, '2021-07-15', '19:18:43'), (6, 'Notebooks', 10, 1000, '2021-07-26', '05:05:05'), (7, 'Handkerchief', 3, 100, '2021-07-28', '10:08:12'), (8, 'Chips Packet', 5, 50, '2021-07-30', '08:16:58'), (9, 'Marker', 2, 30, '2021-08-13', '02:18:32'), (10, 'Scissors', 1, 60, '2021-08-13', '07:17:30'); 

SQL의 TIME 데이터 유형

items_tbl 테이블에 모든 레코드가 성공적으로 삽입되었는지 확인하기 위해 SELECT 쿼리를 실행하겠습니다.

 mysql> SELECT *FROM items_tbl; 

ID 상품명 품목_수량 품목_가격 품목_주문일 품목_주문시간
1 비누 5 200 2021-07-08 04:13:52
2 치약 2 80 2021-07-10 18:09:01
10 오십 2021-07-12 12:00:02
4 1 250 2021-07-13 15:07:05
5 브러시 90 2021-07-15 19:18:43
6 노트북 10 1000 2021-07-26 05:05:05
7 손수건 100 2021-07-28 10:08:12
8 칩 패킷 5 오십 2021-07-30 08:16:58
9 채점자 2 30 2021-08-13 02:18:32
10 가위 1 60 2021-08-13 07:17:30

위의 쿼리 결과는 'HH:MM:SS'라는 기본 저장 형식으로 시간을 가져오는 것을 보여줍니다.

예시 1:

item_tbl의 모든 값과 AM/PM과 함께 12시간 형식의 항목 주문 시간을 검색하여 보다 읽기 쉬운 형식으로 시간 값을 검색하는 쿼리를 작성하세요.

질문:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%r') AS Formatted_Time FROM items_tbl; 

여기서 TIME_FORMAT() 함수는 '%r' 매개변수와 함께 Item_OrderTime에 적용되어 AM/PM 뒤에 오는 12시간 형식으로 시간을 인쇄합니다.

안드로이드 버전

다음 표가 출력으로 표시됩니다.

ID 상품명 품목_수량 품목_가격 품목_주문일 품목_주문시간
1 비누 5 200 2021-07-08 오전 04:13:52
2 치약 2 80 2021-07-10 오후 06:09:01
10 오십 2021-07-12 오후 12:00:02
4 1 250 2021-07-13 오후 03:07:05
5 브러시 90 2021-07-15 오후 7시 18분 43초
6 노트북 10 1000 2021-07-26 오전 05:05:05
7 손수건 100 2021-07-28 오전 10:08:12
8 칩 패킷 5 오십 2021-07-30 오전 08:16:58
9 채점자 2 30 2021-08-13 오전 02:18:32
10 가위 1 60 2021-08-13 오전 07:17:30

예 2:

item_tbl의 모든 값과 AM/PM과 함께 12시간 형식의 항목 주문 시간을 검색하여 보다 읽기 쉬운 형식으로 시간 값을 검색하는 쿼리를 작성하세요.

질문:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%T %p') AS Formatted_Time FROM items_tbl; 

여기서는 '%T %p' 매개변수로 Item_OrderTime에 TIME_FORMAT() 함수가 적용됩니다. '%T'는 24시간 형식으로 시간을 인쇄하고, '%p'는 24시간 형식 시간에 AM/PM을 추가합니다.

ddl 대 dml

다음 표가 출력으로 표시됩니다.

ID 상품명 품목_수량 품목_가격 품목_주문일 품목_주문시간
1 비누 5 200 2021-07-08 오전 04:13:52
2 치약 2 80 2021-07-10 오후 18:09:01
10 오십 2021-07-12 오후 12:00:02
4 1 250 2021-07-13 오후 15:07:05
5 브러시 90 2021-07-15 오후 19:18:43
6 노트북 10 1000 2021-07-26 오전 05:05:05
7 손수건 100 2021-07-28 오전 10:08:12
8 칩 패킷 5 오십 2021-07-30 오전 08:16:58
9 채점자 2 30 2021-08-13 오전 02:18:32
10 가위 1 60 2021-08-13 오전 07:17:30

예시 3:

item_tbl의 모든 값을 검색하고, 전체 주문 시간 중 항목의 주문 시간만 24시간 형식으로 검색하는 쿼리를 작성하세요.

질문:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%H') AS Item_OrderHour FROM items_tbl; 

여기서는 Item_OrderTime에 TIME_FORMAT() 함수를 매개변수 '%H'와 함께 적용하여 상품이 주문된 시간을 구체적으로 출력합니다. 대문자 H는 시간이 24시간 형식으로 인쇄됨을 나타냅니다.

다음 표가 출력으로 표시됩니다.

ID 상품명 품목_수량 품목_가격 품목_주문일 품목_주문시간
1 비누 5 200 2021-07-08 04
2 치약 2 80 2021-07-10 18
10 오십 2021-07-12 12
4 1 250 2021-07-13 열 다섯
5 브러시 90 2021-07-15 19
6 노트북 10 1000 2021-07-26 05
7 손수건 100 2021-07-28 10
8 칩 패킷 5 오십 2021-07-30 08
9 채점자 2 30 2021-08-13 02
10 가위 1 60 2021-08-13 07

예시 4:

item_tbl에서 모든 값을 검색하고, 전체 주문 시간 중 항목의 주문 시간만 12시간 형식으로 검색하는 쿼리를 작성하세요.

질문:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%h') AS Item_OrderHour FROM items_tbl; 

여기서는 Item_OrderTime에 '%h' 매개변수를 사용하여 TIME_FORMAT() 함수를 적용하여 상품이 주문된 시간을 구체적으로 출력합니다. 작은 'h'는 시간이 12시간 형식으로 인쇄됨을 나타냅니다.

다음 표가 출력으로 표시됩니다.

자바의 특징
ID 상품명 품목_수량 품목_가격 품목_주문일 품목_주문시간
1 비누 5 200 2021-07-08 04
2 치약 2 80 2021-07-10 6
10 오십 2021-07-12 12
4 1 250 2021-07-13 03
5 브러시 90 2021-07-15 07
6 노트북 10 1000 2021-07-26 05
7 손수건 100 2021-07-28 10
8 칩 패킷 5 오십 2021-07-30 08
9 채점자 2 30 2021-08-13 02
10 가위 1 60 2021-08-13 07

예시 5:

item_tbl에서 모든 값을 조회하고, 전체 주문 시간 중 해당 상품이 주문된 분만 조회하는 쿼리를 작성하세요.

질문:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%i') AS Item_OrderMinute FROM items_tbl; 

여기서는 Item_OrderTime에 '%i' 매개변수를 사용하여 TIME_FORMAT() 함수를 적용하여 항목이 주문된 분을 구체적으로 인쇄합니다. 작은 'i'는 전체 'Item_OrderTime'의 분을 인쇄함을 나타냅니다.

김프 글꼴 목록

다음 표가 출력으로 표시됩니다.

ID 상품명 품목_수량 품목_가격 품목_주문일 품목_주문분
1 비누 5 200 2021-07-08 13
2 치약 2 80 2021-07-10 09
10 오십 2021-07-12 00
4 1 250 2021-07-13 07
5 브러시 90 2021-07-15 18
6 노트북 10 1000 2021-07-26 05
7 손수건 100 2021-07-28 08
8 칩 패킷 5 오십 2021-07-30 16
9 채점자 2 30 2021-08-13 18
10 가위 1 60 2021-08-13 17

예시 6:

item_tbl에서 모든 값을 검색하고 전체 주문 시간에서 항목이 주문된 시간(초)만 검색하는 쿼리를 작성하세요.

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%S') AS Item_OrderSeconds FROM items_tbl; 

여기서는 Item_OrderTime에 '%S' 매개변수를 사용하여 TIME_FORMAT() 함수를 적용하여 항목이 주문된 시간(초)을 구체적으로 인쇄합니다. 대문자 'S'는 'Item_OrderTime' 전체에서 분을 인쇄한다는 의미입니다.

다음 표가 출력으로 표시됩니다.

ID 상품명 품목_수량 품목_가격 품목_주문일 품목_주문_초
1 비누 5 200 2021-07-08 52
2 치약 2 80 2021-07-10 01
10 오십 2021-07-12 02
4 1 250 2021-07-13 05
5 브러시 90 2021-07-15 43
6 노트북 10 1000 2021-07-26 05
7 손수건 100 2021-07-28 12
8 칩 패킷 5 오십 2021-07-30 58
9 채점자 2 30 2021-08-13 32
10 가위 1 60 2021-08-13 이십

참고: 위 쿼리에서 Small 's'를 사용하면 동일한 출력이 제공됩니다.