Default Timestamp ใช้ CURRENT_TIMESTAMP
MySQL ไม่รองรับ DEFAULT CURRENT_DATE() สำหรับ TIMESTAMP ใช้ CURRENT_TIMESTAMP แทน
สร้างตาราง
CREATE TABLE defaultCurrent_DateDemo (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName VARCHAR(20),
StudentAdmissionDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Insert ทดสอบ
INSERT INTO defaultCurrent_DateDemo(StudentName) VALUES ('Larry');
INSERT INTO defaultCurrent_DateDemo(StudentName, StudentAdmissionDate) VALUES ('Chris', '2019-01-31');
ผลลัพธ์
+-----------+-------------+----------------------+ | StudentId | StudentName | StudentAdmissionDate | +-----------+-------------+----------------------+ | 1 | Larry | 2019-04-02 19:38:19 | | 2 | Chris | 2019-01-31 00:00:00 | +-----------+-------------+----------------------+
คำอธิบาย
- แถวที่ 1: ไม่ระบุวันที่ → ใช้ CURRENT_TIMESTAMP (เวลาที่ Insert)
- แถวที่ 2: ระบุวันที่ → ใช้ค่าที่กำหนด
- TIMESTAMP DEFAULT CURRENT_TIMESTAMP = Auto-set เมื่อ Insert
ฟีเจอร์เพิ่มเติม (MySQL 5.6+)
TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
อัปเดตเวลาอัตโนมัติทุกครั้งที่ UPDATE แถว
DATETIME vs TIMESTAMP
- DATETIME: ไม่มี Auto-update, Range 1000-9999, 8 bytes
- TIMESTAMP: มี Auto-update, Range 1970-2038, 4 bytes, Timezone aware