ถ้าเราต้องการหาผลต่างของเวลา ในฐานข้อมูล MySQL Database ระหว่าง Fileds หรือ ระหว่างเวลาปัจจุบันกับเวลาที่เราเก็บไว้ใน filed ใดfield หนึ่งใน ตาราง เราสามารถใช้ฟังก์ชั่น DATEDIFF() เข้ามาช่วยได้
รูปแบบ
DATEDIFF(date1,date2)
ฟังก์ชั่นนี้จะคืนค่าผลต่างของ date1 กับ date2 ออกมาเป็นจำนวนวัน
ตัวอย่างการใช้งานเช่นถ้าเรามีตารางตามโครงสร้างนี้
CREATE TABLE `member_regis_ip` (
`mem_id` int(11) NOT NULL,
`ip` varchar(50) NOT NULL,
`member_regis_ip_time` datetime NOT NULL,
`detail` text NOT NULL,
PRIMARY KEY (`mem_id`)
) ENGINE=InnoDB DEFAULT CHARSET=tis620 COMMENT='Logs IP user'
หาจำนวนปัจจุบันกับวันที่ที่เราเก็บไว้
SELECT DATEDIFF(NOW(), member_regis_ip_time) FROM member_regis_ip
ตัวอย่างประยุกต์ใช้กับการลบ logs ที่เกินจำนวนวันที่กำหนด
DELETE FROM member_regis_ip WHERE DATEDIFF(NOW(), member_regis_ip_time) > 90