Mysql常用日期时间【备忘】

Mysql日期时间

一. 时间类型

MySQL中的时间类型有三大类:日期(Date)、时间(Time)和年(Year)。
下面的图表展示了MySQL几种类型的基本信息:
在这里插入图片描述

二、MySQL 获得当前日期时间 函数

1.1 获得当前日期+时间(date + time)函数:now()
1.2 获得当前日期+时间(date + time)函数:sysdate()
2. 获得当前日期(date)函数:curdate()
current_date() ,current_date
3. 获得当前时间(time)函数:curtime()
current_time() ,current_time

三、MySQL 日期时间 Extract(选取) 函数。

  1. 选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒
    date(date); year(date); month(date);week(date); day(date); hour(date);minute(date); second(date); microsecond(date);
  2. MySQL Extract() 函数,可以上面实现类似的功能:
    extract(year /month /week/day/hour/minute/second/microsecond from date);
  3. MySQL dayof… 函数:dayofweek(), dayofmonth(), dayofyear()
    分别返回日期参数,在一周、一月、一年中的位置。
  4. MySQL week… 函数:week(), weekofyear(), dayofweek(), weekday(), yearweek()
    MySQL weekday() 函数和 dayofweek() 类似,都是返回“某天”在一周中的位置。不同点在于参考的标准, weekday:(0 = Monday, 1 = Tuesday, …, 6 = Sunday); dayofweek:(1 = Sunday, 2 = Monday, …, 7 = Saturday)
    MySQL yearweek() 函数,返回 year(2008) + week 位置(31)。
  5. MySQL 返回星期和月份名称函数:dayname(), monthname()
  6. MySQL last_day() 函数:返回月份中的最后一天。

四、MySQL 日期时间计算函数

  1. MySQL 为日期增加一个时间间隔:date_add()
    date_add(date, interval 1 day/interval 1 hour/interval 1 minute/interval 1 second)/ interval 1 week/interval 1 month/ interval 1 quarter/interval 1 year);
  2. MySQL 为日期减去一个时间间隔:date_sub()
  3. MySQL 另类日期函数:period_add(P,N), period_diff(P1,P2)
    函数参数“P” 的格式为“YYYYMM” 或者 “YYMM”,第二个参数“N” 表示增加或减去 N month(月)。
    MySQL period_add(P,N):日期加/减去N月。
    MySQL period_diff(P1,P2):日期 P1-P2,返回 N 个月。
    TIMEDIFF(dt1,dt2)函数 - 计算两个TIME或DATETIME值之间的差值。计算了12:00:00和10:00:00之间的差值为:02:00:00
    TIMESTAMPDIFF()函数 - 计算两个DATE或DATETIME值之间的差值。TIMESTAMPDIFF(MINUTE/, ‘2021-08-01 12:00:00’, ‘2021-08-01 12:30:00’)
    TIMESTAMPDIFF( YEAR, ‘2010-01-01’, NOW( ) ) ydiff,
    TIMESTAMPDIFF( MONTH, ‘2010-01-01’, NOW( ) ) mdiff,
    TIMESTAMPDIFF( day, ‘2010-01-01’, NOW( ) ) ddiff;

五、mysql时间与字符串之间相互转换

1.时间转字符串
DATE_FORMAT(日期,格式字符串)
SELECT DATE_FORMAT(NOW(), ‘%Y-%m-%d %H:%i:%s’);
2.字符串转时间
STR_TO_DATE(字符串,日志格式)
SELECT STR_TO_DATE(‘2019-01-20 16:01:45’, ‘%Y-%m-%d %H:%i:%s’);
3.时间转时间戳
select unix_timestamp(now());
4.字符串转时间戳
select unix_timestamp(‘2019-01-20’);
5.时间戳转字符串
select from_unixtime(1451997924,‘%Y-%d’);

附日期格式如下:
%M 月名字(January……December)
%W 星期名字(Sunday……Saturday)
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(Sun……Sat)
%d 月份中的天数, 数字(00……31)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(Jan……Dec)
%j 一年中的天数(001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……12)
%I 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59)
%r 时间,12 小时(hh:mm:ss [AP]M)
%T 时间,24 小时(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一个星期中的天数(0=Sunday ……6=Saturday )
%U 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一

用于备忘及快速查询
参考https://www.cnblogs.com/end/archive/2011/05/04/2036525.html

  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yi513327753

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值