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

DateTime 필드의 시간 부분을 무시하고 MySQL에서 날짜를 비교합니까?

<시간/>

datetime 필드의 시간 부분을 제외하고 MySQL에서 날짜를 비교하려면 DATE() 함수를 사용할 수 있습니다. 구문은 다음과 같습니다 -

select *from yourTableName where date(yourColumName) = yourDate;

위의 개념을 이해하기 위해 테이블을 만들어 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -

mysql> create table ComparingDate
   −> (
   −> Name varchar(100),
   −> Login datetime
   −> );
Query OK, 0 rows affected (0.50 sec)

이제 insert 명령을 사용하여 테이블에 일부 레코드를 삽입할 수 있습니다. 쿼리는 다음과 같습니다 -

mysql> insert into ComparingDate values('John','2014-04-06 22:50:45');
Query OK, 1 row affected (0.15 sec)

mysql> insert into ComparingDate values('Bob','2018-12-15 15:07:46');
Query OK, 1 row affected (0.14 sec)

mysql> insert into ComparingDate values('Carol','2016-03-10 21:50:40');
Query OK, 1 row affected (0.18 sec)

mysql> insert into ComparingDate values('David','1995-08-08 23:40:47');
Query OK, 1 row affected (0.14 sec)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> select *from ComparingDate;

다음은 출력입니다 -

+-------+---------------------+
| Name  | Login               |
+-------+---------------------+
| John  | 2014-04-06 22:50:45 |
| Bob   | 2018-12-15 15:07:46 |
| Carol | 2016-03-10 21:50:40 |
| David | 1995-08-08 23:40:47 |
+-------+---------------------+
4 rows in set (0.00 sec)

다음은 시간이 아닌 날짜만 비교하는 쿼리입니다 -

mysql> select *from ComparingDate where date(Login) = '2016-03-10';

다음은 출력입니다 -

+-------+---------------------+
| Name  | Login               |
+-------+---------------------+
| Carol | 2016-03-10 21:50:40 |
+-------+---------------------+
1 row in set (0.00 sec)