ให้เรตสมาชิก: 2 / 5

ดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

ถ้าเราต้องการหาผลต่างของเวลา ในฐานข้อมูล 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