一、time_long 为 BIGINT
1、当前如果存储的是秒 ,转化为时间格式
SELECT FROM_UNIXTIME(time_long) AS date FROM your_table;
2023-08-12 16:53:08
2、如果您存储的是毫秒级别的 Unix 时间戳,需要将其除以 1000 转换为秒数,转化为时间格式
SELECT FROM_UNIXTIME(time_long/1000) AS date FROM your_table;
2023-08-12 16:11:44.5560
3、秒值转换为指定的日期格式
select FROM_UNIXTIME(1691830388,'%Y-%m-%d %H:%i:%s') as date
2023-08-12 16:53:08
4、毫秒级别的时间戳
select REPLACE(unix_timestamp(current_timestamp(3)),'.','')
1691830541995
select current_timestamp(3);
2023-08-12 16:58:09.540
select unix_timestamp(current_timestamp(3))
1691830720.641
二、time_date 为 date
1、当前的系统日期
SELECT CURDATE();
2023-08-12
2、时间格式化
SELECT DATE_FORMAT(CURDATE(), '%Y-%m-%d %H:%i:%s') today;
2023-08-12 00:00:00
3、计算两个日期值之间的天数
SELECT DATEDIFF('2023-08-12','2023-08-11') days;
1
4、增加时间
SELECT
'2023-08-12' start,
DATE_ADD('2023-08-12', INTERVAL 1 DAY) 'one day later',
DATE_ADD('2023-08-12', INTERVAL 1 WEEK) 'one week later',
DATE_ADD('2023-08-12', INTERVAL 1 MONTH) 'one month later',
DATE_ADD('2023-08-12', INTERVAL 1 YEAR) 'one year later';
start | one day later | one week later | one month later | one year later |
---|---|---|---|---|
2023-08-12 | 2023-08-13 | 2023-08-19 | 2023-09-12 | 2024-08-12 |
5、减少时间
SELECT
'2023-08-12' start,
DATE_SUB('2023-08-12', INTERVAL 1 DAY) 'one day before',
DATE_SUB('2023-08-12', INTERVAL 1 WEEK) 'one week before',
DATE_SUB('2023-08-12', INTERVAL 1 MONTH) 'one month before',
DATE_SUB('2023-08-12', INTERVAL 1 YEAR) 'one year before';
6、获取日期值的日期,月份,季度和年份
SELECT DAY('2023-08-12') as '天/12',
MONTH('2023-08-12') as '月/8',
QUARTER('2023-08-12') as '季度/4',
YEAR('2023-08-12') as '年份/2023';
7、获得周信息周相关功能
SELECT
WEEKDAY('2023-08-12') weekday,//星期。 0是星期一
WEEK('2023-08-12') week,
WEEKOFYEAR('2023-08-12') weekofyear;
weekday week weekofyear
5 32 32
三、time_date_time 为datetime
1、DATE_ADD函数
SELECT NOW() start,
DATE_ADD(NOW(), INTERVAL 1 SECOND) '1 second later',
DATE_ADD(NOW(), INTERVAL 1 MINUTE) '1 minute later',
DATE_ADD(NOW(), INTERVAL 1 HOUR) '1 hour later',
DATE_ADD(NOW(), INTERVAL 1 DAY) '1 day later',
DATE_ADD(NOW(), INTERVAL 1 WEEK) '1 week later',
DATE_ADD(NOW(), INTERVAL 1 MONTH) '1 month later',
DATE_ADD(NOW(), INTERVAL 1 YEAR) '1 year later';
四、常用转化
1、MySQL 日期、时间转换函数:date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式。它是 str_to_date(str,format) 函数的 一个逆转换。
select date_format(NOW(),'%Y-%m-%d %H:%i:%s')
2023-08-12 18:04:03
select time_format(NOW(),'%H:%i:%s')
18:04:39
select str_to_date('2023-08-12 18:04:03','%Y-%m-%d %H:%i:%s')
2023-08-12 18:04:03
2、今天开始和结束
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d 00:00:00') AS '今天开始';
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') AS '今天结束';
3、昨天开始
SELECT DATE_FORMAT( DATE_SUB(CURDATE(), INTERVAL 1 DAY), '%Y-%m-%d 00:00:00') AS '昨天开始';
评论区