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

ใช้ CURRENT_TIMESTAMP แทน current_date() สำหรับ Default Timestamp ใน MySQL

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