Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL 테이블에서 특정 월과 연도의 레코드를 어떻게 가져올 수 있습니까?

<시간/>

YEAR() 및 MONTH()를 사용하여 특정 월 및 연도의 레코드를 각각 표시합니다. 먼저 테이블을 생성하겠습니다 -

mysql> Create table DemoTable ( CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY, CustomerName varchar(20), CustomerTotalBill int, PurchasingDate date ); 쿼리 확인, 영향을 받는 행 0개(0.83초)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into DemoTable(CustomerName,CustomerTotalBill,PurchasingDate) values('John',2000,'2019-01-21');Query OK, 영향을 받는 행 1개(0.12초)mysql> insert into DemoTable(CustomerName, CustomerTotalBill,PurchasingDate) values('Chris',1000,'2019-01-31');Query OK, 영향을 받는 1개 행(0.21초)mysql> insert into DemoTable(CustomerName,CustomerTotalBill,PurchasingDate) values('Robert',4500 ,'2018-01-01');쿼리 OK, 영향을 받는 행 1개(0.24초) mysql> DemoTable(CustomerName,CustomerTotalBill,PurchasingDate)에 삽입 values('Sam',5500,'2017-02-12');Query OK, 1행 영향(0.14초)mysql> insert into DemoTable(CustomerName,CustomerTotalBill,PurchasingDate) values('Carol',500,'2016-01-12');Query OK, 1행 영향(0.17초) 

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> DemoTable에서 *선택;

이것은 다음과 같은 출력을 생성합니다 -

+------------+--------------+------------------ -+----------------+| 고객 ID | 고객 이름 | 총계 청구서 | 구매일 |+------------+--------------+---------- +----------------+| 1 | 존 | 2000년 | 2019-01-21 || 2 | 크리스 | 1000 | 2019-01-31 || 3 | 로버트 | 4500 | 2018-01-01 || 4 | 샘 | 5500 | 2017-02-12 || 5 | 캐롤 | 500 | 2016-01-12 |+------------+--------------+------------------ -+----------------+5행 세트(0.00초)

다음은 MySQL에서 특정 월 및 연도의 레코드를 표시하는 쿼리입니다 -

mysql> select *from DemoTable WHERE YEAR(DATE(PurchasingDate))=2019 AND MONTH(DATE(PurchasingDate)) =01;

이것은 다음과 같은 출력을 생성합니다 -

+------------+--------------+------------------ -+----------------+| 고객 ID | 고객 이름 | 총계 청구서 | 구매일 |+------------+--------------+---------- +----------------+| 1 | 존 | 2000년 | 2019-01-21 || 2 | 크리스 | 1000 | 2019-01-31 |+------------+--------------+-------------------- -+----------------+2행 세트(0.03초)