ใน 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)