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

MySQL에서 월 및 연도가 시작된 이후의 바우처 값 합계 계산

<시간/>

이를 위해 MySQL MONTH() 및 YEAR() 메서드를 사용합니다. 먼저 테이블을 생성하겠습니다 -

mysql> create table DemoTable1562
   -> (
   -> VoucherValue int,
   -> RechargeDate date
   -> );
Query OK, 0 rows affected (1.40 sec)

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

mysql> insert into DemoTable1562 values(149,'2019-10-21');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1562 values(199,'2019-10-13');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1562 values(399,'2018-10-13');
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable1562 values(450,'2019-10-13');
Query OK, 1 row affected (0.20 sec)

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

mysql> select * from DemoTable1562;

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

+--------------+--------------+
| VoucherValue | RechargeDate |
+--------------+--------------+
|          149 | 2019-10-21   |
|          199 | 2019-10-13   |
|          399 | 2018-10-13   |
|          450 | 2019-10-13   |
+--------------+--------------+
4 rows in set (0.00 sec)

현재 날짜는 다음과 같습니다 -

mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2019-10-13 |
+------------+
1 row in set (0.00 sec)

다음은 월 및 연초 이후의 상품권 금액 합계를 계산하는 쿼리입니다.

mysql> select sum(VoucherValue) from DemoTable1562
   -> where month(RechargeDate)=month(curdate())
   -> and year(RechargeDate)=year(curdate());

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

+-------------------+
| sum(VoucherValue) |
+-------------------+
|               798 |
+-------------------+
1 row in set (0.00 sec)