MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLクエリでBirthDate列を使用してAgeを取得できますか?


MySQLクエリでBirthDate列を使用してAgeを取得するには、datediff()を使用できます。最初にテーブルを作成しましょう:

mysql> create table DemoTable
(
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   DateOfBirth date
);
Query OK, 0 rows affected (1.46 sec)

以下は、挿入コマンドを使用してテーブルにいくつかのレコードを挿入するためのクエリです。

mysql> insert into DemoTable(DateOfBirth) values('2010-01-21');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(DateOfBirth) values('1993-04-02');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(DateOfBirth) values('1999-12-01');
Query OK, 1 row affected (1.53 sec)
mysql> insert into DemoTable(DateOfBirth) values('1998-11-16');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable(DateOfBirth) values('2004-03-19');
Query OK, 1 row affected (0.11 sec)

以下は、selectコマンドを使用してテーブルのレコードを表示するためのクエリです。

mysql> select *from DemoTable;

これにより、次の出力が生成されます。

+----+-------------+
| Id | DateOfBirth |
+----+-------------+
|  1 | 2010-01-21  |
|  2 | 1993-04-02  |
|  3 | 1999-12-01  |
|  4 | 1998-11-16  |
|  5 | 2004-03-19  |
+----+-------------+
5 rows in set (0.00 sec)

DATEDIFF()メソッドでbirthdate列を使用してAgeを取得しましょう:

mysql> select cast(DATEDIFF(curdate(),DateOfBirth) / 365.25 AS UNSIGNED) AS AGE from DemoTable;

これにより、次の出力が生成されます。

+------+
| AGE  |
+------+
|    9 |
|   26 |
|   19 |
|   20 |
|   15 |
+------+
5 rows in set (0.00 sec)

ここで、年齢が20〜26のDOBとIDを取得するクエリを作成しましょう。

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

これにより、次の出力が生成されます。

+----+-------------+
| Id | DateOfBirth |
+----+-------------+
|  2 | 1993-04-02  |
|  3 | 1999-12-01  |
|  4 | 1998-11-16  |
+----+-------------+
3 rows in set (0.00 sec)

  1. 列の値を置き換えるMySQLクエリ

    まずテーブルを作成しましょう- mysql> create table DemoTable (    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    Score int ); Query OK, 0 rows affected (0.45 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable(Score) values(56); Query OK, 1 row affected (0.24 sec)

  2. 列を分割して、MySQLクエリで従業員の月給を取得しますか?

    まずテーブルを作成しましょう- mysql> create table DemoTable1957    (    EmployeeId int,    EmployeeName varchar(20),    EmployeeSalary int    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1957 values(1