- 데이터베이스의 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);
위 쿼리에서 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');
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 | 이십 |