当前位置: 代码迷 >> 综合 >> mysql中与时间相关函数的使用说明——timestampdiff、date_format,day,last_day
  详细解决方案

mysql中与时间相关函数的使用说明——timestampdiff、date_format,day,last_day

热度:92   发布时间:2023-12-21 23:47:29.0

目录

  • 1、计算时间差(timestampdiff())
    • 1.1 引言
    • 1.2 使用说明
    • 1.3 使用示例
  • 2、控制时间输出格式(date_format())
    • 2.1 使用说明
    • 2.2 使用示例
  • 3、计算每个月的天数(day()& last_day())
    • 3.1 应用场景
    • 3.2 计算方法
      • 3.2.1 计算某个时间的天数
      • 3.2.2 计算某个月的天数

1、计算时间差(timestampdiff())

1.1 引言

在实际的工作中经常需要计算两个时间点之间的差值来作为筛选控制条件,mysql中的timestampdiff()函数很好的解决了这个需求,下面介绍该函数的使用方法。

1.2 使用说明

格式:TIMESTAMPDIFF(unit,begin,end);
上面式子中begin和end是DATE或DATETIME表达式。

TIMESTAMPDIFF函数允许其参数具有混合类型,例如,begin是DATE值,end可以是DATETIME值。 如果使用DATE值,则TIMESTAMPDIFF函数将其视为时间部分为“00:00:00”的DATETIME值。

unit的有以下选择,根据选择返回计算结果:

MICROSECOND  微秒
SECOND  秒
MINUTE  分钟
HOUR  小时
DAY  天
WEEK  周
MONTH  月份
QUARTER 
YEAR  年份

1.3 使用示例

SELECTTIMESTAMPDIFF( MONTH, '2020-01-01', '2022-06-01' ) result;

结果
在这里插入图片描述
更改unit可以计算不同的时间尺度差值。

2、控制时间输出格式(date_format())

2.1 使用说明

date_format(date, format)
date 参数是合法的日期,format 规定日期/时间的输出格式。

可以使用的输出格式

格式 描述
%a 缩写星期名
%b 缩写月名
%c 月,数值
%D 带有英文前缀的月中的天
%d 月的天,数值(00-31)
%e 月的天,数值(0-31)
%f 微秒
%H 小时(00-23)
%h 小时(01-12)
%I 小时(01-12)
%i 分钟,数值(00-59)
%j 年的天(001-366)
%k 小时(0-23)
%l 小时(1-12)
%M 月名
%m 月,数值(00-12)
%p AM 或 PM
%r 时间,12-小时(hh:mm:ss AM 或 PM)
%S 秒(00-59)
%s 秒(00-59)
%T 时间, 24-小时(hh:mm:ss)
%U 周(00-53)星期日是一周的第一天
%u 周(00-53)星期一是一周的第一天
%V 周(01-53)星期日是一周的第一天,与 %X 使用
%v 周(01-53)星期一是一周的第一天,与 %x 使用
%W 星期名
%w 周的天(0=星期日, 6=星期六)
%X 年,其中的星期日是周的第一天,4 位,与 %V 使用
%x 年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y 年,4 位
%y 年,2 位

2.2 使用示例

代码:
date_format(now(),'%m-%d-%Y')
输出:
01-10-2022

3、计算每个月的天数(day()& last_day())

3.1 应用场景

已知某个时间,需要计算该月的总天数,以便于计算一些月平均值。

3.2 计算方法

3.2.1 计算某个时间的天数

/*DAY函数返回给定日期的月份的日期部分*/
day(date)

3.2.2 计算某个月的天数

/*LAST_DAY函数返回某月的最后一天,例如2022-01-31,DAY函数返回最后一天的那个月的日期,也就是该月份的天数。*/
day(last_day(date))
  相关解决方案