当前位置:   article > 正文

MySQL日期时间处理函数大全_mysql日期函数

mysql日期函数

MySQL 日期时间处理函数大全

-- 1、查看当前日期时间
select now() from dual; -- 这里面的dual为虚表,MYSQL也可以不写。
select now();
select current_timestamp();
select current_timestamp;
select localtime();
select localtime;
select localtimestamp();
select localtimestamp;
-- 初次之外还有sysdate,但是特殊些。
select sysdate();
-- 区别:
select now(), sleep(3), now();
select sysdate(), sleep(3), sysdate();
 
 -- 查看当前日期
select curdate();
select current_date();
select current_date;
-- 产看当前时间
select curtime();
select current_time();
select current_time;
 
-- 获得当前 utc 日期时间函数
select utc_timestamp(), utc_date(), utc_time()
-- mysql 获得当前时间戳函数:
select current_timestamp, current_timestamp();
 

-- 2、日期函数

select date(current_timestamp);-- 获取日期
select time(current_timestamp);-- 获取时间
select year(current_timestamp);-- 获取年份
select month(current_timestamp);-- 获取月份
select day(current_timestamp);-- 获取日
select hour(current_timestamp);-- 获取时
select minute(current_timestamp);-- 获取分
select second(current_timestamp);-- 获取秒
select microsecond();-- 获取毫秒
select quarter(current_timestamp);-- 获取季度
select week(current_timestamp);-- 获取周
select weekofyear(current_timestamp);-- 同week()
select dayofyear(current_timestamp);-- 日期在年度中第几天
select dayofmonth(current_timestamp);-- 日期在月度中第几天
select dayofweek(current_timestamp);-- 日期在周中第几天;周日为第一天
select weekday(current_timestamp);-- 日期在本周的星期几 0-6,0为星期1
select yearweek(current_timestamp);-- 年和周

-- 3、extract函数用法
select extract(year from current_timestamp); -- 年
select extract(month from current_timestamp);-- 月
select extract(day from current_timestamp);-- 日
select extract(hour from current_timestamp);-- 小时
select extract(minute from current_timestamp);-- 分钟
select extract(second from current_timestamp);-- 秒
select extract(microsecond from '2022-05-20 8:24:30.666666');-- 毫秒
select extract(quarter from current_timestamp);-- 季度
select extract(week from current_timestamp);-- 第几周
select extract(year_month from current_timestamp); -- 年和月
select extract(day_hour from '2022-05-20 8:24:30.666666'); -- 日时
select extract(day_minute from '2022-05-20 8:24:30.666666');-- 日时分)
select extract(day_second from '2022-05-20 8:24:30.666666');-- 日时分秒
select extract(day_microsecond from '2022-05-20 8:24:30.666666');-- 日时分秒毫秒
select extract(hour_minute from current_timestamp);-- 时分
select extract(hour_second from current_timestamp);-- 时分秒
select extract(hour_microsecond from '2022-05-20 8:24:30.666666');-- 日时分秒毫秒
select extract(minute_second from current_timestamp);-- 分秒
select extract(minute_microsecond from '2022-05-20 8:24:30.666666');-- 分秒毫秒
select extract(second_microsecond from '2022-05-20 8:24:30.666666');-- 秒毫秒
select dayname(current_timestamp);-- monday(返回英文星期)
select monthname(current_timestamp);-- may(返回英文月份)
select last_day(current_timestamp);-- 返回月份中最后一天

 
-- 4、date_add(date,interval expr type) 从日期加上指定的时间间隔
select date_add(current_timestamp,interval 1 year);
select date_add(current_timestamp,interval 1 quarter);
select date_add(current_timestamp,interval 1 month);
select date_add(current_timestamp,interval 1 week);
select date_add(current_timestamp,interval 1 day);
select date_add(current_timestamp,interval 1 hour);
select date_add(current_timestamp,interval 1 minute);
select date_add(current_timestamp,interval 1 second);
select date_add('2022-05-20 8:24:30.666666',interval 1 microsecond);
 
 
-- 5、date_sub(date,interval expr type) 从日期减去指定的时间间隔
select date_sub(current_timestamp,interval 1 year);
select date_sub(current_timestamp,interval 1 quarter);
select date_sub(current_timestamp,interval 1 month);
select date_sub(current_timestamp,interval 1 week);
select date_sub(current_timestamp,interval 1 day);
select date_sub(current_timestamp,interval 1 hour);
select date_sub(current_timestamp,interval 1 minute);
select date_sub(current_timestamp,interval 1 second);
select date_sub('2022-05-20 8:24:30.666666',interval 1 microsecond);
 
-- 6、 经特殊日期测试,date_sub(date,interval expr type)可放心使用
select date_sub(curdate(),interval 1 day);-- 前一天
select date_sub(curdate(),interval -1 day);-- 后一天
select date_sub(curdate(),interval 1 month);-- 一个月前日期
select date_sub(curdate(),interval -1 month);-- 一个月后日期
select date_sub(curdate(),interval 1 year);-- 一年前日期
select date_sub(curdate(),interval -1 year);-- 一年后日期
-- mysql date_sub() 日期时间函数 和 date_add() 用法一致,并且可以用internal -1 xxx的形式互换使用;
-- 另外,mysql 中还有两个函数 subdate(), subtime(),建议,用 date_sub() 来替代。
 
 
-- 7、mysql 另类日期函数:period_add(p,n), period_diff(p1,p2)
-- 函数参数“p” 的格式为“yyyymm” 或者 “yymm”,第二个参数“n” 表示增加或减去 n month(月)。
-- mysql period_add(p,n):日期加/减去n月。
select period_add(202205,2), period_add(202205,-2);  -- 加两个月减两个月
select period_diff(20220608, 20220508);  -- 差12月,第一个参数减第二个参数
select datediff('2022-06-05','2022-05-29'); -- 差7天
select timediff('2022-06-05 19:28:37', '2022-06-05 17:00:00');
 
-- 8、mysql日期转换函数
select time_to_sec('08:24:30');
select sec_to_time(30270);
-- mysql (日期、天数)转换函数:to_days(date), from_days(days)
select to_days('0000-00-00'); -- null 
select to_days(CURRENT_TIMESTAMP); -- 738652
select from_days(0);
select from_days(738652);

 
-- 9、mysql str to date (字符串转换为日期)函数:str_to_date(str, format)
select str_to_date('06.05.2017 19:40:30', '%m.%d.%y %h:%i:%s');
select str_to_date('06/05/2017', '%m/%d/%y'); 
select str_to_date('2017/12/3','%y/%m/%d')
select str_to_date('20:09:30', '%h:%i:%s')		       
 
-- 10、日期时间格式化
select date_format('2022-05-12 17:03:51', '%y年%m月%d日 %h时%i分%s秒');
select time_format('2022-05-12 17:03:51', '%y年%m月%d日 %h时%i分%s秒');
-- str_to_date()和date_formate()为互逆操作
  
-- mysql 拼凑日期、时间函数:makdedate(year,dayofyear), maketime(hour,minute,second)
select makedate(2012,30);
select maketime(19,52,35);

-- 11、mysql (unix 时间戳、日期)转换函数
-- unix_timestamp(), unix_timestamp(date), from_unixtime(unix_timestamp), from_unixtime(unix_timestamp,format)
select unix_timestamp();
select unix_timestamp('2022-05-12');
select unix_timestamp('2022-05-12 08:24:30');
-- 将时间戳转为具体时间
select from_unixtime(1652315070); -- 时间戳转化成日期
select from_unixtime(1652315070, '%y年%m月%d日 %h时%分:%s秒'); -- 时间戳转化成格式化日期
 
-- 12、mysql 时间戳(timestamp)转换、增、减函数
select timestamp('2022-05-12');
select timestamp('2022-05-12 08:12:25', '01:01:01'); -- 时间加
select date_add('2022-05-12 08:12:25', interval 1 day); -- 下一天
select timestampadd(day, 1, '2022-05-12 08:12:25');-- 下一天
-- mysql timestampadd() 函数类似于 date_add()。
 
select timestampdiff(year, '2017-06-01', CURRENT_DATE); -- 差几年
select timestampdiff(month, '2017-06-01', CURRENT_DATE);  -- 差多少月
select timestampdiff(day, '2017-06-01', CURRENT_DATE); -- 差多少天
select timestampdiff(hour, '2017-06-01 08:12:25', CURRENT_TIMESTAMP);-- 差多少小时
select timestampdiff(minute, '2017-06-01 08:12:25',CURRENT_DATE);-- 差多少分钟
select timestampdiff(second, '2017-06-01 08:12:25', CURRENT_DATE);-- 差多少秒
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165

本文部分资料参考:
[https://blog.csdn.net/qinshijangshan/article/details/72874667?spm=1001.2014.3001.5506]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/727042
推荐阅读
相关标签
  

闽ICP备14008679号