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

DATETIME 필드에서 DATE를 사용하여 오늘의 레코드를 반환하는 방법은 무엇입니까?

<시간/>

먼저 열 중 하나가 날짜/시간 유형인 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
(
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   ShippingDate datetime
);
Query OK, 0 rows affected (0.54 sec)

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오.

mysql> insert into DemoTable(ShippingDate) values('2019-03-01 05:45:32');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(ShippingDate) values('2019-04-13 11:34:56');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(ShippingDate) values('2019-03-15 04:45:23');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(ShippingDate) values('2019-04-11 12:10:02');
Query OK, 1 row affected (0.17 sec)

다음은 select 문을 사용하여 테이블의 모든 레코드를 표시하는 쿼리입니다.

mysql> select *from DemoTable;

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

+----+---------------------+
| Id | ShippingDate        |
+----+---------------------+
| 1  | 2019-03-01 05:45:32 |
| 2  | 2019-04-13 11:34:56 |
| 3  | 2019-03-15 04:45:23 |
| 4  | 2019-04-11 12:10:02 |
+----+---------------------+
4 rows in set (0.00 sec)

다음은 DATETIME 필드에서 DATE를 이용하여 오늘의 기록을 가져오는 쿼리이다. 오늘 날짜가 "2019-04-13"이라고 가정해 보겠습니다.

mysql> select *from DemoTable where ShippingDate > date_sub(curdate(),interval 1 day);

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

+----+---------------------+
| Id | ShippingDate        |
+----+---------------------+
| 2  | 2019-04-13 11:34:56 |
+----+---------------------+
1 row in set (0.00 sec)