目录
1、当前日期:
CURRENT_DATE 格式为:’2019-06-18’
2、当前时间:
CURRENT_TINE 格式为:‘23:54:43’
3、当前日期和时间:
CURRENT_TIMESTAMP
current_timestamp()
now() -- 在执行开始时值就得到了
sysdate() -- 在函数执行时动态得到值
格式为:‘2019-06-18 23:56:00’
sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。如:select now(), sleep(3), sysdate(),now();
4、截取日期元素:
EXTRACT(日期元素 from 日期)
如:
Select extract(year from CURRENT_TIMESTAMP) as year from dual; -- 2021
5、日期、时间转换为字符串函数:
date_format(date,format)
time_format(time,format)
能够把一个日期/时间转换成各种各样的字符串格式。
如:
select date_format('2008-08-08 22:23:01', '%Y%m%d%H%i%s'); -- 20080808222301
6、字符串转换为日期函数:
str_to_date(str,format)
如:
select str_to_date('08.09.2008 08:09:30', '%m.%d.%Y %h:%i:%s'); -- 2008-08-09 08:09:30
7、(时间、秒) 转换函数:
time_to_sec(time)
sec_to_time(seconds)
如:
select time_to_sec('01:00:05'); -- 3605
select sec_to_time(3605); -- '01:00:05'
8、unix时间戳 转换 日期 函数:
from_unixtime(unix_timestamp)
from_unixtime(unix_timestamp,format)
如:
select unix_timestamp('2016-01-02'); -- 1451664000
select from_unixtime(1451664000); -- 2016-01-02 00:00:00
select from_unixtime(1451664000,'%Y.%m.%d'); -- 2016.01.02
9、时间戳(timestamp)转换、增、减函数:
timestamp(date) -- date to timestamp
timestamp(dt,time) -- dt + time
timestampadd(unit,interval,datetime_expr) --
timestampdiff(unit,datetime_expr1,datetime_expr2) --
10、日期 转换 时间戳 函数:
unix_timestamp()
unix_timestamp(date)
如:
select unix_timestamp(); -- 1623203157
select unix_timestamp('2016-01-02'); -- 1623203157
11、日期时间计算函数:
date_add() -- 为日期加上一个时间间隔
date_sub() -- 为日期减去一个时间间隔
datediff(date1,date2) -- 两个日期相减
timediff(time1,time2) -- 两个时间相减
如:为日期加上(date_add)、或 减去(date_sub)一个时间间隔
select now(); -- 2021-06-09 09:55:33
select date_add(now(), interval 1 day); -- 加1天 2021-06-10 09:55:33
select date_add(now(), interval 1 hour); -- 加1小时 2021-06-09 10:55:33
select date_add(now(), interval 1 minute); -- 加1分钟 2021-06-09 09:56:33
select date_add(now(), interval 1 second); -- 加1秒 2021-06-09 09:55:34
select date_add(now(), interval 1 microsecond);-- 加1毫秒 2021-06-09 09:55:33.000001
select date_add(now(), interval 1 week); -- 加1周 2021-06-16 09:55:33
select date_add(now(), interval 1 month); -- 加1月 2021-07-09 09:55:33
select date_add(now(), interval 1 quarter); -- 加1季度 2021-09-09 09:55:33
select date_add(now(), interval 1 year); -- 加1年 2022-06-09 09:55:33
select date_add(now(), interval '1 01:15:30' day_second);-- 加1天和指定秒 2021-06-10 11:11:03
select date_add(now(), interval '01:15:30' hour_second);-- 加小时秒 2021-06-09 11:11:03
日期、时间相减函数:datediff(date1,date2), timediff(time1,time2)
如:
select datediff('2021-06-18', '2021-06-09'); -- 9
12、MySQL日期格式化(format)取值范围。
值 | 含义 | |
---|---|---|
秒 | %S、%s | 两位数字形式的秒( 00,01, ..., 59) |
分 | %I、%i | 两位数字形式的分( 00,01, ..., 59) |
小时 | %H | 24小时制,两位数形式小时(00,01, ...,23) |
%h | 12小时制,两位数形式小时(00,01, ...,12) | |
%k | 24小时制,数形式小时(0,1, ...,23) | |
%l | 12小时制,数形式小时(0,1, ...,12) 小写的L。 | |
%T | 24小时制,时间形式(HH:mm:ss) | |
%r | 12小时制,时间形式(hh:mm:ss AM 或 PM) | |
%p | AM上午或PM下午 | |
周 | %W | 一周中每一天的名称(Sunday,Monday, ...,Saturday) |
%a | 一周中每一天名称的缩写(Sun,Mon, ...,Sat) | |
%w | 以数字形式标识周(0=Sunday,1=Monday, ...,6=Saturday) | |
%U | 数字表示周数,星期天为周中第一天 | |
%u | 数字表示周数,星期一为周中第一天 | |
天 | %d | 两位数字表示月中天数(01,02, ...,31) |
%e | 数字表示月中天数(1,2, ...,31) | |
%D | 英文后缀表示月中天数(1st,2nd,3rd ...) | |
%j | 以三位数字表示年中天数(001,002, ...,366) | |
月 | %M | 英文月名(January,February, ...,December) |
%b | 英文缩写月名(Jan,Feb, ...,Dec) | |
%m | 两位数字表示月份(01,02, ...,12) | |
%c | 数字表示月份(1,2, ...,12) | |
年 | %Y | 四位数字表示的年份(2015,2016...) |
%y | 两位数字表示的年份(15,16...) | |
文字输出 | %文字 | 直接输出文字内容 |