MySQL数据类型-日期
大约 2 分钟
数据库教程: https://www.sjkjc.com/mysql/select/
时间类型
类型 | 字节 | 格式 | 用途 | 是否支持设置系统默认值 |
---|---|---|---|---|
date | 3 | YYYY-MM-DD | 日期值 | 不支持 |
time | 3 | HH:MM:SS | 时间值或持续时间 | 不支持 |
year | 1 | YYYY | 年份 | 不支持 |
datetime | 8 | YYYY-MM-DD HH:MM:SS | 日期和时间混合值 | 不支持 |
timestamp | 4 | YYYYMMDD HHMMSS | 混合日期和时间,可作时间戳 | 支持 |
-- 方式一:
create_time timestamp NOT NULL DEFAULT NOW();
-- 方式二:
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP();
-- 方式三:
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
MySQL DATE 函数
MySQL 提供了许多有用的日期函数,允许您有效地操作日期。以下列出了常用的日期函数:
NOW()
: 获取当前日期和时间SELECT NOW();
CURDATE()
: 获取当前日期SELECT CURDATE();
DATE()
: 获取日期部分SELECT DATE(NOW());
DATE_FORMAT()
: 格式化输出日期SELECT DATE_FORMAT(CURDATE(), '%m/%d/%Y') today;
DATEDIFF()
: 计算两个日期之间的天数SELECT DATEDIFF('2021-01-01','2022-01-01') days;
DATE_ADD()
: 在给定日期上增加给定的时间间隔SELECT CURDATE() `今天`, DATE_ADD(CURDATE(), INTERVAL 1 DAY) '一天后', DATE_ADD(CURDATE(), INTERVAL 1 WEEK) '一周后', DATE_ADD(CURDATE(), INTERVAL 1 MONTH) '一月后', DATE_ADD(CURDATE(), INTERVAL 1 YEAR) '一年后';
DATE_SUB()
: 在给定日期上减少给定的时间间隔SELECT CURDATE() `今天`, DATE_SUB(CURDATE(), INTERVAL 1 DAY) '一天前', DATE_SUB(CURDATE(), INTERVAL 1 WEEK) '一周前', DATE_SUB(CURDATE(), INTERVAL 1 MONTH) '一月前', DATE_SUB(CURDATE(), INTERVAL 1 YEAR) '一年前';
DAY()
: 返回日期中天MONTH()
: 返回月份QUARTER()
: 返回季节YEAR()
: 返回年份SELECT DAY(CURDATE()) `day`, MONTH(CURDATE()) `month`, QUARTER(CURDATE()) `quarter`, YEAR(CURDATE()) `year`;
WEEK()
: 函数返回给定日期是一年周的第几周WEEKDAY()
: 函数返回工作日索引WEEKOFYEAR()
: 函数返回日历周SELECT WEEKDAY(CURDATE()) `weekday`, WEEK(CURDATE()) `week`, WEEKOFYEAR(CURDATE()) `weekofyear`;