sql

mysql时间大全

过去的,未来的
2023-08-20 / 0 评论 / 0 点赞 / 326 阅读 / 827 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-08-20,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

一、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 '昨天开始';
0

评论区