MySQL DATETIME 和 DATE
Part1
在MySQL中,DATETIME
和 DATE
是两种用于存储日期和时间信息的不同数据类型。
DATETIME
- 定义:
DATETIME
类型用于存储日期和时间值,格式为YYYY-MM-DD HH:MM:SS
。 - 范围:
DATETIME
的范围是'1000-01-01 00:00:00'
到'9999-12-31 23:59:59'
。 - 精度:
DATETIME
的时间部分可以精确到秒。 - 用途:适用于需要同时存储日期和时间信息的场景,如记录事件发生的具体时间。
DATE
- 定义:
DATE
类型用于存储日期值,格式为YYYY-MM-DD
。 - 范围:
DATE
的范围是'1000-01-01'
到'9999-12-31'
。 - 精度:
DATE
只存储日期,不包含时间信息。 - 用途:适用于只需要存储日期信息的场景,如记录生日或会议日期。
示例
假设你有一个名为 events
的表,需要记录事件发生的日期和时间,以及事件的截止日期。你可以这样设计表结构:
CREATE TABLE events (
event_id INT AUTO_INCREMENT PRIMARY KEY,
event_name VARCHAR(255) NOT NULL,
event_datetime DATETIME NOT NULL,
event_end_date DATE NOT NULL
);
在这个例子中,event_datetime
字段使用 DATETIME
类型来存储事件的完整日期和时间,而 event_end_date
字段使用 DATE
类型来存储事件的截止日期。
插入数据
向 events
表中插入数据的示例:
INSERT INTO events (event_name, event_datetime, event_end_date)
VALUES ('公司年会', '2023-12-25 19:00:00', '2023-12-25');
在这个例子中,event_datetime
存储了年会的具体日期和时间,而 event_end_date
只存储了年会的日期部分。
查询数据
查询 events
表中的数据,并格式化日期和时间输出的示例:
SELECT event_name, DATE_FORMAT(event_datetime, '%Y-%m-%d %H:%i:%s') AS formatted_datetime, event_end_date
FROM events;
在这个查询中,DATE_FORMAT
函数用于将 event_datetime
字段的日期和时间格式化为指定的字符串格式。
总之,DATETIME
和 DATE
是MySQL中用于存储日期和时间信息的两种基本数据类型,根据具体需求选择合适的类型来存储数据。