MySQL时间默认值

1. 介绍
在MySQL中,可以为表的某些字段设置默认值。当插入新的数据行时,如果没有为该字段指定值,则会自动使用默认值。时间类型的字段也可以设置时间类型的默认值。
本文将详细讲解MySQL中时间默认值的设置和使用。
2. 时间类型
MySQL中有多种时间类型,其中常用的有DATE、TIME、DATETIME和TIMESTAMP。
DATE类型表示日期,格式为’YYYY-MM-DD’。TIMESTAMP类型表示一个时间戳,格式为’YYYY-MM-DD HH:MM:SS’,范围为’1970-01-01 00:00:01’到’2038-01-19 03:14:07’。TIME类型表示时间,格式为’HH:MM:SS’。DATETIME类型表示日期和时间,格式为’YYYY-MM-DD HH:MM:SS’。
3. 默认值设置
为了为时间类型的字段设置默认值,我们可以使用MySQL提供的各种函数。
CURRENT_TIMESTAMP可以用作DEFAULT关键字的值,表示当前的时间戳。CURRENT_DATE表示当前的日期。CURRENT_TIME表示当前的时间。
下面是一个示例表,其中设置了不同类型的时间字段的默认值。
CREATE TABLE example (
id INT PRIMARY KEY AUTO_INCREMENT,
create_date DATE DEFAULT CURRENT_DATE,
create_time TIME DEFAULT CURRENT_TIME,
create_datetime DATETIME DEFAULT CURRENT_TIMESTAMP,
create_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
4. 示例
4.1 不指定时间字段的值
当你插入新的数据行时,如果没有为时间字段指定值,则会使用默认值。我们来插入几条数据。
INSERT INTO example (id) VALUES (1);
INSERT INTO example (id) VALUES (2), (3), (4);
在查询数据时,可以看到使用了默认值。
SELECT * FROM example;
/*
id | create_date | create_time | create_datetime | create_timestamp
-------------------------------------------------
1 | 2021-07-15 | 11:22:33 | 2021-07-15 11:22:33 | 2021-07-15 11:22:33
2 | 2021-07-15 | 11:22:33 | 2021-07-15 11:22:33 | 2021-07-15 11:22:33
3 | 2021-07-15 | 11:22:33 | 2021-07-15 11:22:33 | 2021-07-15 11:22:33
4 | 2021-07-15 | 11:22:33 | 2021-07-15 11:22:33 | 2021-07-15 11:22:33
*/
4.2 指定时间字段的值
如果你希望插入自定义的时间值而不是默认值,也是可以的。
INSERT INTO example (id, create_date, create_time, create_datetime, create_timestamp)
VALUES (5, '2022-01-01', '12:34:56', '2022-01-01 12:34:56', '2022-01-01 12:34:56');
通过查询,可以看到指定的时间值被正确插入。
SELECT * FROM example;
/*
id | create_date | create_time | create_datetime | create_timestamp
-------------------------------------------------
1 | 2021-07-15 | 11:22:33 | 2021-07-15 11:22:33 | 2021-07-15 11:22:33
2 | 2021-07-15 | 11:22:33 | 2021-07-15 11:22:33 | 2021-07-15 11:22:33
3 | 2021-07-15 | 11:22:33 | 2021-07-15 11:22:33 | 2021-07-15 11:22:33
4 | 2021-07-15 | 11:22:33 | 2021-07-15 11:22:33 | 2021-07-15 11:22:33
5 | 2022-01-01 | 12:34:56 | 2022-01-01 12:34:56 | 2022-01-01 12:34:56
*/
4.3 修改默认值
默认值是可以修改的。我们可以使用ALTER TABLE语句来更改默认值。下面的示例将修改create_datetime字段的默认值为当前时间。
ALTER TABLE example MODIFY create_datetime DATETIME DEFAULT CURRENT_TIMESTAMP;
再次插入数据,可以看到新插入的数据行使用了新的默认值。
INSERT INTO example (id) VALUES (6);
SELECT * FROM example;
/*
id | create_date | create_time | create_datetime | create_timestamp
-------------------------------------------------
1 | 2021-07-15 | 11:22:33 | 2021-07-15 11:22:33 | 2021-07-15 11:22:33
2 | 2021-07-15 | 11:22:33 | 2021-07-15 11:22:33 | 2021-07-15 11:22:33
3 | 2021-07-15 | 11:22:33 | 2021-07-15 11:22:33 | 2021-07-15 11:22:33
4 | 2021-07-15 | 11:22:33 | 2021-07-15 11:22:33 | 2021-07-15 11:22:33
5 | 2022-01-01 | 12:34:56 | 2022-01-01 12:34:56 | 2022-01-01 12:34:56
6 | 2021-07-15 | 11:22:33 | 2021-07-15 13:45:27 | 2021-07-15 11:22:33
*/
5. 结论
通过本文,我们详细了解了MySQL中时间默认值的设置和使用。可以根据需求为时间类型的字段设置不同的默认值,确保数据的准确性和完整性。
极客笔记