MySQL时间默认值

MySQL时间默认值

MySQL时间默认值

1. 介绍

在MySQL中,可以为表的某些字段设置默认值。当插入新的数据行时,如果没有为该字段指定值,则会自动使用默认值。时间类型的字段也可以设置时间类型的默认值。

本文将详细讲解MySQL中时间默认值的设置和使用。

2. 时间类型

MySQL中有多种时间类型,其中常用的有DATETIMEDATETIMETIMESTAMP

  • 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中时间默认值的设置和使用。可以根据需求为时间类型的字段设置不同的默认值,确保数据的准确性和完整性。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程