mysql日期时间相关

1 获取日期时间相关
  • 获取当前日期时间
SELECT
	NOW(), # sql 执行时的时间
	SYSDATE(), # 方法运行时的时间
	CURDATE(),# 当前日期 同CURRENT_DATE ()
	CURTIME(),# 当前时间 同CURRENT_TIME()
	CURRENT_TIMESTAMP (),
	UNIX_TIMESTAMP(),
	SLEEP(2),
	NOW(),
	SYSDATE() 

在这里插入图片描述

  • 获取指定时间的年、季度、月、日、时、分、秒、date、time
SELECT
	YEAR (NOW()),
	QUARTER (NOW()),
	MONTH (NOW()),
	DAY (NOW()),
	HOUR (NOW()),
	MINUTE (NOW()),
	SECOND (NOW()),
	DATE(NOW()),
	TIME(NOW())

在这里插入图片描述

  • 其他
SELECT
	WEEK (NOW()), #所在周数 0开始
    WEEKOFYEAR(NOW()),#所在周数 1 开始
	WEEKDAY(NOW()),# 0代表周一
	DAYOFWEEK(NOW()),# 1代表周日
	DAYOFMONTH(NOW()),# 1,2,3....31
	DAYOFYEAR(NOW()),# 1,2,3....366
	YEARWEEK(NOW())# 年份周数

在这里插入图片描述

2 日期时间转换
  • UNIX_TIMESTAMP()
    unix_timestamp()方法中的可选参数

    DATE字符串 YYYY-MM-DD
    DATETIME字符串 YYYY-MM-DD HH:MM:SS
    TIMESTAMP YYYY-MM-DD HH:MM:SS
    数字格式YYYYMMDD (20211223)
    数字格式YYYYMMDDHHmmss (20211223101008)

  • FROM_UNIXTIME(unix_timestamp,[format])
    时间戳格式化成响应的时间格式

  • DATE_FORMAT(date,format)
    日期格式化成响应的时间格式

    format 格式

    格式描述参考值
    %a缩写星期名Wed
    %W星期名Wednesday
    %w周的天 (0=星期日, 6=星期六)3
    %b缩写月名Dec
    %M月名December
    %c月,数值2
    %m月,数值(00-12)02
    %D带有英文前缀的月中的天29th
    %d月的天,数值(00-31)05
    %e月的天,数值(0-31)5
    %H小时 (00-23)13
    %h小时 (01-12)01
    %k小时 (0-23)1
    %i分钟,数值(00-59)31
    %j年的天 (001-366)363
    %pAM 或 PMAM
    %r时间,12-小时(hh:mm:ss AM 或 PM)01:28:05 PM
    %S %s秒(00-59)03
    %T时间, 24-小时 (hh:mm:ss)13:28:05
    %U %u周 (00-53) 星期日是一周的第一天00起始(1月1号不是周日)
    %V周 (01-53) 星期日是一周的第一天,与 %X 使用01起始(1月1号不是周日,算上一年度的)
    %X年,星期日是周的第一天,与 %V 使用2021.1.1 周五,使用 ‘%X%V’ 得202052
    %Y年,4 位2021
    %y年,2 位21
3 日期时间计算相关
  • ADDTIME | SUBTIME
    时间的加减,分和秒数字不能超过60
SELECT
	NOW(),
	ADDTIME(NOW(), '59'),#59秒
	SUBTIME(NOW(), '59'),
	ADDTIME(NOW(), '5959'),#59分59秒
	SUBTIME(NOW(), '5959'),
	ADDTIME(NOW(), '1005959'),#100时59分59秒
	SUBTIME(NOW(), '1005959')

在这里插入图片描述

  • ADDDATE | SUBDATE

ADDDATE(date,INTERVAL expr unit)
ADDDATE(expr,days)

SELECT
	NOW(),
	ADDDATE(NOW(), 1),
	SUBDATE(NOW(), 1),
	ADDDATE(NOW(), INTERVAL 1 DAY),
	SUBDATE(NOW(), INTERVAL 1 DAY)

在这里插入图片描述

  • DATE_ADD | DATE_SUB

DATE_ADD(date,INTERVAL expr unit)
DATE_SUB(date,INTERVAL expr unit)

SELECT
	NOW(),
	DATE_ADD(NOW(), INTERVAL 1 DAY),
	DATE_SUB(NOW(), INTERVAL 1 DAY)

在这里插入图片描述

  • PERIOD_ADD
SELECT
	NOW(),
	PERIOD_ADD(date_format(NOW(),'%Y%m'),1) A

在这里插入图片描述

  • TIMEDIFF | DATEDIFF | PERIOD_DIFF | TIMESTAMPDIFF
    TIMEDIFF 返回两者相差的时间

    SELECT
    TIMEDIFF('2021-12-30 11:11:11','2021-12-29 11:11:11')
    
    24:00:00
    

    DATEDIFF 返回两者之间相差的天数

    SELECT
     DATEDIFF('2021-12-29','2021-12-30')
    
    -1
    

    PERIOD_DIFF(P1,P2) 返回两者之间相差的月份 参数格式均为YYYYMM或者YYMM

    SELECT
     PERIOD_DIFF('202112','202111')
     
     1
    

    TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2) 通过unit(天(DAY)、小时(HOUR),分钟(MINUTE)和秒(SECOND))返回指定格式的时间间隔

    SELECT
     TIMESTAMPDIFF(DAY,'2021-12-28 11:11:11','2021-12-29 10:11:11'),
     TIMESTAMPDIFF(HOUR,'2021-12-28 11:11:11','2021-12-29 10:11:11'),
     TIMESTAMPDIFF(MINUTE,'2021-12-28','2021-12-29'),
     TIMESTAMPDIFF(SECOND,'2021-12-28','2021-12-29')
    

    在这里插入图片描述


unit 参数

unit含义
MICROSECOND微秒 (千分之一毫秒)
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER季度
YEAR
SECOND_MICROSECOND几秒又几十万毫秒
MINUTE_MICROSECOND几分又几秒又几十万毫秒
MINUTE_SECOND几分又几秒
HOUR_MICROSECOND几小时又几分又几秒又几十万毫秒
HOUR_SECOND几小时又几分又几秒
HOUR_MINUTE几小时又几分
DAY_MICROSECOND几天又几小时又几分又几秒又几十万毫秒
DAY_SECOND几天又几小时又几分又几秒
DAY_MINUTE几天又几小时又几分
DAY_HOUR几天又几小时
YEAR_MONTH几年又几月
SELECT
	NOW(),
	ADDDATE(NOW(), INTERVAL '1 1' SECOND_MICROSECOND) A,
	ADDDATE(NOW(), INTERVAL '1 1 1' MINUTE_MICROSECOND) B,
	ADDDATE(NOW(), INTERVAL '1 1' MINUTE_SECOND) C,
	ADDDATE(NOW(), INTERVAL '1 1 1 1' HOUR_MICROSECOND) D,
	ADDDATE(NOW(), INTERVAL '1 1 1' HOUR_SECOND) E,
	ADDDATE(NOW(), INTERVAL '1 1' HOUR_MINUTE) F,
	ADDDATE(NOW(), INTERVAL '1 1 1 1 1' DAY_MICROSECOND) H,
	ADDDATE(NOW(), INTERVAL '1 1 1 1' DAY_SECOND) G,
	ADDDATE(NOW(), INTERVAL '1 1 1' DAY_MINUTE) Q,
	ADDDATE(NOW(), INTERVAL '1 1' DAY_HOUR) W,
	ADDDATE(NOW(), INTERVAL '1 1' YEAR_MONTH) E

在这里插入图片描述
在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值