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

MySQL 쿼리에서 BirthDate 열을 사용하여 나이를 얻을 수 있습니까?

<시간/>

MySQL 쿼리에서 BirthDate 열을 사용하여 나이를 얻으려면 datediff()를 사용할 수 있습니다. 먼저 테이블을 생성해 보겠습니다.

mysql> 테이블 생성 DemoTable( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, DateOfBirth 날짜); 쿼리 OK, 영향을 받는 행 0개(1.46초)

다음은 삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하는 쿼리입니다.

mysql> insert into DemoTable(DateOfBirth) values('2010-01-21');Query OK, 1행 영향(0.14초) mysql> insert into DemoTable(DateOfBirth) values('1993-04-02');쿼리 OK, 1행 영향(0.13초)mysql> DemoTable(DateOfBirth) 값에 삽입('1999-12-01');쿼리 OK, 1행 영향(1.53초)mysql> DemoTable(DateOfBirth) 값에 삽입( '1998-11-16');쿼리 OK, 1행 영향(0.19초)mysql> DemoTable(DateOfBirth) 값에 삽입('2004-03-19');쿼리 OK, 1행 영향(0.11초) 

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

mysql> DemoTable에서 *선택;

그러면 다음과 같은 출력이 생성됩니다.

+----+--------------+| 아이디 | 생년월일 |+----+-------------+| 1 | 2010-01-21 || 2 | 1993-04-02 || 3 | 1999-12-01 || 4 | 1998-11-16 || 5 | 2004-03-19 |+----+-------------+5행 세트(0.00초)

이제 DATEDIFF() 메서드로 생년월일 열을 사용하여 연령을 구해 보겠습니다.

mysql> 선택 캐스트(DATEDIFF(curdate(),DateOfBirth) / 365.25 AS UNSIGNED) AS AGE from DemoTable;

그러면 다음과 같은 출력이 생성됩니다.

+------+| 나이 |+------+| 9 || 26 || 19 || 20 || 15 |+------+5행 세트(0.00초)

이제 Age가 20에서 26 사이인 DOB와 ID를 가져오는 쿼리를 작성해 보겠습니다.

mysql> SELECT *FROM DemoTable WHERE YEAR(CURDATE())-YEAR(DateOfBirth)BETWEEN 20 AND 26;

그러면 다음과 같은 출력이 생성됩니다.

+----+--------------+| 아이디 | 생년월일 |+----+-------------+| 2 | 1993-04-02 || 3 | 1999-12-01 || 4 | 1998-11-16 |+----+------------+3행 세트(0.00초)