Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Có thể dùng current_date() cho cột TIMESTAMP DEFAULT trong MySQL?

Giá trị mặc định cho cột TIMESTAMP trong MySQL

Không thể dùng CURRENT_DATE() làm DEFAULT cho cột TIMESTAMP. MySQL chỉ cho phép CURRENT_TIMESTAMP (hoặc các alias: NOW(), LOCALTIME, LOCALTIMESTAMP).

Cú pháp đúng

CREATE TABLE yourTable (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(20),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Ví dụ minh họa

Tạo bảng:

mysql> CREATE TABLE defaultCurrent_DateDemo (
    -> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName VARCHAR(20),
    -> StudentAdmissionDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    -> );

Chèn dữ liệu:

mysql> INSERT INTO defaultCurrent_DateDemo(StudentName) VALUES ('Larry');
mysql> INSERT INTO defaultCurrent_DateDemo(StudentName, StudentAdmissionDate) VALUES ('Chris', '2019-01-31');

Kết quả:

+-----------+-------------+----------------------+
| StudentId | StudentName | StudentAdmissionDate |
+-----------+-------------+----------------------+
| 1         | Larry       | 2019-04-02 19:38:19  |
| 2         | Chris       | 2019-01-31 00:00:00  |
+-----------+-------------+----------------------+
  • Hàng 1: Không cung cấp AdmissionDate → tự động lấy CURRENT_TIMESTAMP
  • Hàng 2: Cung cấp giá trị cụ thể → dùng giá trị đó

Các biến thể DEFAULT TIMESTAMP