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

현재 날짜와 날짜 간의 차이를 정렬하고 표시하는 MySQL 쿼리

<시간/>

이를 위해 ORDER BY 절을 사용합니다. 현재 날짜는 다음과 같습니다 -

mysql> 지금 선택();+---------------------+| 지금() |+------------------------+| 2019-06-09 21:08:16 |+---------------------+1행 세트(0.00초)

먼저 테이블을 생성하겠습니다 -

mysql> Create table DemoTable -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> DueDate datetime -> );쿼리 OK, 영향을 받는 행 0개(0.62초)

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

mysql> insert into DemoTable(DueDate) values('2019-06-12');Query OK, 1행 영향(0.24초)mysql> insert into DemoTable(DueDate) values('2019-06-01');쿼리 OK, 1행 영향(0.37초)mysql> DemoTable(DueDate) 값에 삽입('2019-06-05');쿼리 OK, 1행 영향(0.20초)mysql> DemoTable(DueDate) 값에 삽입( '2019-06-10');쿼리 OK, 1행 영향(0.13초)mysql> DemoTable(DueDate) 값에 삽입('2019-06-11');쿼리 OK, 1행 영향(0.66초) 

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

mysql> DemoTable에서 *선택;

출력

+----+---------------------+| 아이디 | 마감일 |+----+---------------------+| 1 | 2019-06-12 00:00:00 || 2 | 2019-06-01 00:00:00 || 3 | 2019-06-05 00:00:00 || 4 | 2019-06-10 00:00:00 || 5 | 2019-06-11 00:00:00 |+----+--------------------+5행 세트(0.00초)

다음은 차액을 구하고 날짜를 주문하기 위한 쿼리입니다. 날짜 간의 차이는 별도의 열에 표시됩니다 -

mysql> Select Id,DueDate,DATEDIFF(DueDate, CURDATE()) AS t from DemoTable -> CASE WHEN t <0 THEN 1 ELSE 0 END, t;

출력

+----+---------------------+------+| 아이디 | 마감일 | t |+----+---------------------+------+| 4 | 2019-06-10 00:00:00 | 1 || 5 | 2019-06-11 00:00:00 | 2 || 1 | 2019-06-12 00:00:00 | 3 || 2 | 2019-06-01 00:00:00 | -8 || 3 | 2019-06-05 00:00:00 | -4 |+----+----------------------+------+세트의 행 5개(0.00초)