Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีคำนวณวันที่ใน MySQL ด้วยฟังก์ชัน

ใน MySQL เราสามารถใช้ฟังก์ชันต่อไปนี้เพื่อคำนวณวันที่

  • ฟังก์ชัน CURDATE() - คืนค่าวันที่ปัจจุบันของคอมพิวเตอร์
  • ฟังก์ชัน YEAR() - คืนค่าปีของวันที่ระบุ
  • ฟังก์ชัน MONTH() - คืนค่าเดือนของวันที่ระบุ
  • ฟังก์ชัน DAY() - คืนค่าวันของวันที่ระบุ
  • ฟังก์ชัน RIGHT() - คืนค่าจำนวนตัวอักษรตามที่ระบุในฟังก์ชันจากวันที่ที่ให้มา ส่วนของนิพจน์ที่เปรียบเทียบค่าที่คืนจาก RIGHT() จะประเมินเป็น 1 หรือ 0

เพื่อเข้าใจ ให้พิจารณาข้อมูลดังนี้จากตารางชื่อ 'Collegedetail'

mysql> Select * from Collegedetail;
+------+---------+------------+
| ID   | Country | Estb       |
+------+---------+------------+
| 111  | INDIA   | 2010-05-01 |
| 130  | INDIA   | 1995-10-25 |
| 139  | USA     | 1994-09-25 |
| 1539 | UK      | 2001-07-23 |
| 1545 | Russia  | 2010-07-30 |
+------+---------+------------+
5 rows in set (0.00 sec)

ในคำสั่งต่อไปนี้ เราคำนวณวันที่โดยใช้ฟังก์ชันวันที่ต่างๆ ทั้งหมด

mysql> Select ID, Estb, CURDATE(), YEAR(Estb), MONTH(Estb), DAY(Estb), (RIGHT(CURDATE(),5) < RIGHT(estb,5)) As 'Return' FROM Collegedetail;
+------+------------+------------+------------+-------------+-----------+--------+
| ID   | Estb       | CURDATE()  | YEAR(Estb) | MONTH(Estb) | DAY(Estb) | Return |
+------+------------+------------+------------+-------------+-----------+--------+
| 111  | 2010-05-01 | 2017-11-30 | 2010       | 5           | 1         | 0      |
| 130  | 1995-10-25 | 2017-11-30 | 1995       | 10          | 25        | 0      |
| 139  | 1994-09-25 | 2017-11-30 | 1994       | 9           | 25        | 0      |
| 1539 | 2001-07-23 | 2017-11-30 | 2001       | 7           | 23        | 0      |
| 1545 | 2010-07-30 | 2017-11-30 | 2010       | 7           | 30        | 0      |
+------+------------+------------+------------+-------------+-----------+--------+
5 rows in set (0.00 sec)
mysql> Select ID, estb, CURDATE(),((YEAR(CURDATE())-YEAR(estb))-(RIGHT(CURDATE(),5)