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中用于存储日期和时间信息的两种基本数据类型,根据具体需求选择合适的类型来存储数据。
