📜  mysql中的时间数据类型(1)

📅  最后修改于: 2023-12-03 15:17:49.127000             🧑  作者: Mango

MySQL中的时间数据类型

MySQL中定义了多种时间数据类型,包括日期、时间、时间戳等。在实际应用中,需要根据业务需求选择合适的时间数据类型来存储和操作日期时间信息。

日期时间数据类型

MySQL中的日期时间数据类型包括DATE、TIME、DATETIME和TIMESTAMP。

DATE

DATE数据类型用于存储年月日的日期信息,格式为'YYYY-MM-DD'。例如,'2021-05-20'表示2021年5月20日。

在MySQL中,可以使用以下的方式来创建一个DATE类型的列:

CREATE TABLE mytable (
  id INT NOT NULL,
  date_col DATE NOT NULL,
  PRIMARY KEY (id)
);
TIME

TIME数据类型用于存储时分秒的时间信息,格式为'HH:MM:SS'。例如,'12:30:00'表示中午12点30分。

在MySQL中,可以使用以下的方式来创建一个TIME类型的列:

CREATE TABLE mytable (
  id INT NOT NULL,
  time_col TIME NOT NULL,
  PRIMARY KEY (id)
);
DATETIME

DATETIME数据类型用于存储日期和时间信息,格式为'YYYY-MM-DD HH:MM:SS'。例如,'2021-05-20 12:30:00'表示2021年5月20日中午12点30分。

在MySQL中,可以使用以下的方式来创建一个DATETIME类型的列:

CREATE TABLE mytable (
  id INT NOT NULL,
  datetime_col DATETIME NOT NULL,
  PRIMARY KEY (id)
);
TIMESTAMP

TIMESTAMP数据类型用于存储日期和时间信息,格式为'YYYY-MM-DD HH:MM:SS'。与DATETIME类型不同的是,TIMESTAMP类型的取值范围为'1970-01-01 00:00:01'到'2038-01-19 03:14:07',并且存储的时间信息会自动转换为UTC时间。

在MySQL中,可以使用以下的方式来创建一个TIMESTAMP类型的列:

CREATE TABLE mytable (
  id INT NOT NULL,
  timestamp_col TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (id)
);
时间计算

在MySQL中,可以使用各种函数和运算符来对日期时间进行加减和比较操作,例如:

-- 计算两个日期之间的天数差
SELECT DATEDIFF('2021-05-20', '2021-05-10'); -- 返回10

-- 计算当前时间和指定时间之间的时间差
SELECT TIMESTAMPDIFF(MINUTE, '2021-05-20 12:30:00', NOW()); -- 返回当前时间和'2021-05-20 12:30:00'之间的分钟数

-- 按年分组统计数据
SELECT YEAR(date_col), COUNT(*) FROM mytable GROUP BY YEAR(date_col);

-- 按小时查询数据
SELECT * FROM mytable WHERE HOUR(time_col) = 12;
总结

MySQL中的时间数据类型包括DATE、TIME、DATETIME和TIMESTAMP,可以根据业务需求选择合适的数据类型来存储和操作日期时间信息。同时,MySQL也提供了各种函数和运算符来方便地对日期时间进行计算和比较操作。