日期类型与常见日期类型总结
mysql日期数据类型
日期时间类型 | 占用空间 | 日期格式 | 最小值 | 最大值 | 零值表示 |
---|---|---|---|---|---|
DATETIME | 8字节 | YYYY-mm-DD HH:MM:SS | 1000-01-01 00:00:00 | 9999-12-31 23:59:59 | 0000-00-00 00:00:00 |
TIMESTAMP | 4字节 | YYYY-mm-DD HH:MM:SS | 1970-01-01 08-00-01 | 2038-01-19 03:14:07 | 00000000000000 |
DATE | 4字节 | YYYY-mm-DD | 1000-01-01 | 9999-12-31 | 0000-00-00 |
TIME | 3字节 | HH:MM:SS | -838:59:59 | 838:59:59 | 00:00:00 |
YEAR | 1字节 | YYYY | 1901 | 2155 | 0000 |
- mysql保存日期格式使用YYYY-mm-DD HH:MM:SS的iso 8601标准。
- 其中,%y表示年,%m表示月,%d表示天,%h表示小时,%i表示分钟,%s表示秒。
- 注意timestamp类型,从1970-2038年,比如生日之类的超出范围的就不适合。
mysql常见日期处理函数
1、获取当前系统时间
方法 | 功能描述 |
---|---|
now() | 获取系统当前的时间日期 |
current_timestamp() | 获取当前的时间日期 |
current_date() | 获取当前的日期 |
current_time() | 获取当前的时分秒 |
now()
作用: 获取当前的日期时间。
select now();
current_timestamp()
作用: 获取当前的日期时间。
select current_timestamp()
current_date()
作用: 获取当前的日期。
select current_date()
current_time()
作用: 获取当前的时分秒。
select current_time()
2、获取指定时间的年月日时分秒部分
方法 | 功能描述 |
---|---|
year(timestamp|date) | 获取指定日期的年 |
month(timestamp|date) | 获取指定日期的月 |
day(timestamp|date) | 获取指定日期的天 |
hour(timestamp|hour) | 获取指定时间的小时 |
minute(timestamp|minute) | 获取指定时间的分钟 |
second(timestamp|second) | 获取指定时间的秒 |
#year(), month(), day()
#hour(), minute(), second()
select year(now()), month(now()), day(now()), hour(now()), minute(now()), second(now())
3、获取当前日期是本月的第几天,本周的星期几\
方法 | 功能描述 |
---|---|
day(date|timestamp) | 获取当前日期为本月的多少天 |
dayofweek(date|timestamp) | 获取当前日期为本周的星期几, 1-7,其中1表示星期日 |
weekday(date|timestamp) | 获取当 |