MySQL timestamp默认值

2024年07月31日 MySQL timestamp默认值 极客笔记

MySQL timestamp默认值

在MySQL中,我们经常会使用timestamp类型来表示时间戳信息。在创建表时,我们可以为timestamp类型指定默认值。默认值是在插入新记录时如果没有指定该字段的值,则会自动使用默认值。本文将详细讨论MySQL中timestamp类型的默认值使用方法。

什么是timestamp类型

timestamp类型是MySQL中一种用来存储时间戳信息的数据类型。它存储的时间格式为"YYYY-MM-DD HH:MM:SS",并且默认情况下具有自动更新功能,即当插入或更新操作执行时,timestamp类型字段的值会被自动更新为当前的时间戳。

下面是创建一个包含timestamp类型字段的示例表格:

CREATE TABLE `example_table` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `name` VARCHAR(50),
  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

在上面的示例中,我们创建了一个名为example_table的表格,其中包含了一个created_at字段,其类型为timestamp,并且指定了默认值为当前的时间戳。

指定timestamp的默认值

在创建表格时,我们可以为timestamp类型的字段指定默认值。默认值可以是一个常量值,也可以是一个函数。常用的函数有CURRENT_TIMESTAMPNOW()

使用CURRENT_TIMESTAMP

CURRENT_TIMESTAMP函数可以用来获取当前的时间戳,并将其作为默认值赋给timestamp类型的字段。以下是一个使用CURRENT_TIMESTAMP的示例:

CREATE TABLE `example_table` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `name` VARCHAR(50),
  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

在上面的示例中,我们为created_at字段指定了默认值为CURRENT_TIMESTAMP,这意味着当插入新记录时,如果没有指定created_at的值,它将自动使用当前的时间戳作为默认值。

使用NOW()

NOW()函数也可以用来获取当前的时间戳,并将其作为默认值赋给timestamp类型的字段。以下是一个使用NOW()的示例:

CREATE TABLE `example_table` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `name` VARCHAR(50),
  `created_at` TIMESTAMP DEFAULT NOW()
);

在上面的示例中,我们为created_at字段指定了默认值为NOW(),这与CURRENT_TIMESTAMP的效果相同。

使用常量值

除了使用函数获取当前的时间戳作为默认值外,我们也可以直接使用常量值来指定timestamp类型字段的默认值。以下是一个使用常量值的示例:

CREATE TABLE `example_table` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `name` VARCHAR(50),
  `created_at` TIMESTAMP DEFAULT '2022-01-01 00:00:00'
);

在上面的示例中,我们为created_at字段指定了默认值为'2022-01-01 00:00:00',这意味着当插入新记录时,如果没有指定created_at的值,它将使用'2022-01-01 00:00:00'作为默认值。

示例代码

下面是一个完整的示例代码,演示了如何创建一个包含timestamp类型字段并指定默认值的表格:

CREATE TABLE `example_table` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `name` VARCHAR(50),
  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

INSERT INTO `example_table` (`name`) VALUES ('John');
INSERT INTO `example_table` (`name`) VALUES ('Alice');

SELECT * FROM `example_table`;

运行结果

运行以上示例代码后,我们将得到如下的表格内容:

+----+------+---------------------+
| id | name | created_at          |
+----+------+---------------------+
| 1  | John | 2022-07-15 10:30:00 |
| 2  | Alice| 2022-07-15 10:31:00 |
+----+------+---------------------+

从上面的结果可以看出,插入新记录时created_at字段自动填充了当前的时间戳。

总结

在MySQL中,我们可以使用timestamp类型来存储时间戳信息,并且可以为timestamp类型的字段指定默认值。常用的默认值包括CURRENT_TIMESTAMPNOW()函数以及常量值。通过指定默认值,可以在插入新记录时自动填充时间戳信息,提高了数据的准确性和便利性。

本文链接:http://so.lmcjl.com/news/9645/

展开阅读全文