mysql时间函数时间差mysql时间日期函数使用方法mysql时间函数 时间差




mysql时间函数时间差mysql时间日期函数使用方法mysql时间函数 时间差

2022-07-21 2:27:08 网络知识 官方管理员

MYSQL五大类函数,前面已经介绍了聚合函数、字符串函数和数值型函数,还有时间日期函数和控制流函数,这篇介绍一下日期时间函数,日期和时间函数主要用于处理日期和时间,其中包括获取当前时间的函数、获取当前日期的函数、返回年份的函数和返回日期的函数等。


这一篇主要介绍常用的日期和时间函数,然后后面会给出常用的计算(本)月初、月末,本周、上周初末、昨日今日等时间的表达式。

函数名称

作用

CURDATE和CURRENT_DATE

两个函数作用相同,返回当前系统的日期值

CURTIME和CURRENT_TIME

两个函数作用相同,返回当前系统的时间值

NOW和SYSDATE

两个函数作用相同,返回当前系统的日期和时间值

MONTHNAME

获取指定日期中的月份英文名称

DAYNAME

获取指定日期对应的星期几的英文名称

DAYOFWEEK

获取指定日期对应的一周的索引位置值

DAYOFYEAR

获取指定曰期是一年中的第几天

DAYOFMONTH

获取指定日期是一个月中是第几天

WEEK

获取指定日期是一年中的第几周

MONTH

获取指定日期中的月份

YEAR

获取年份

DATE_ADD和ADDDATE

两个函数功能相同,都是向日期添加指定的时间间隔

DATE_SUB和SUBDATE

两个函数功能相同,都是向日期减去指定的时间间隔

ADDTIME

时间加法运算,在原始时间上添加指定的时间

SUBTIME

时间减法运算,在原始时间上减去指定的时间

DATEDIFF

获取两个日期之间间隔

DATE_FORMAT

格式化指定的日期,根据参数返回指定格式的值

WEEKDAY

获取指定日期在一周内的对应的工作日索引

【CURDATE和CURRENT_DATE】

CURDATE和CURRENT_DATE获取系统当前日期。可以通过"CURDATE()+0"将当前日期值转换为数值型。

SELECTCURDATE(),CURRENT_DATE(),CURDATE()+0

mysql时间函数时间差(mysql时间日期函数使用方法)(1)

【CURTIME和CURRENT_TIME】

CURTIME和CURRENT_TIME获取系统当前时间。通过"CURRENT_TIME()+0"将当前时间值转换为数值型。

SELECTCURTIME(),CURRENT_TIME(),CURTIME()+0

mysql时间函数时间差(mysql时间日期函数使用方法)(2)

【NOW和SYSDATE】

NOW和SYSDATE获取当前系统的日期和时间。NOW()函数始终获取的是SQL语句开始执行的时间,而SYSDATE()函数则是动态获取的实时时间。

SELECTNOW(),SYSDATE()

mysql时间函数时间差(mysql时间日期函数使用方法)(3)

【MONTHNAME】

使用MONTHNAME()函数返回指定日期中月份的名称。

SELECTbirthday,MONTHNAME(birthday)FROMwangfalin;

mysql时间函数时间差(mysql时间日期函数使用方法)(4)

【DAYNAME】

使用DAYNAME()函数返回指定日期的工作日名称。

SELECTbirthday,DAYNAME(birthday)FROMwangfalin;

mysql时间函数时间差(mysql时间日期函数使用方法)(5)

【DAYOFWEEK】

使用DAYOFWEEK()函数返回日期对应的周索引,星期天为开始1。

SELECTbirthday,DAYOFWEEK(birthday)FROMwangfalin;

mysql时间函数时间差(mysql时间日期函数使用方法)(6)

【DAYOFYEAR】

DAYOFYEAR()函数返回是一年中的第几天,范围为1~366。

SELECTbirthday,DAYOFYEAR(birthday)FROMwangfalin;

mysql时间函数时间差(mysql时间日期函数使用方法)(7)

【DAYOFMONTH】

DAYOFMONTH()函数返回是一个月中的第几天,范围为1~31。

SELECTbirthday,DAYOFMONTH(birthday)FROMwangfalin;

mysql时间函数时间差(mysql时间日期函数使用方法)(8)

【WEEK】

WEEK()函数计算日期date是一年中的第几周。WEEK(date,mode)函数允许指定星期是否起始于周日或周一,以及返回值的范围是否为0~52或1~53。

  • date是要获取周数的日期。
  • mode是一个可选参数,用于确定周数计算的逻辑。

模式

一周的第一天

范围

0

星期日

0-53

1

星期一

0-53

2

星期日

1-53

3

星期一

1-53

4

星期日

0-53

5

星期一

0-53

6

星期日

1-53

7

星期一

1-53

SELECTbirthday,WEEK(birthday,3)FROMwangfalin;

mysql时间函数时间差(mysql时间日期函数使用方法)(9)

【MONTH】

MONTH(date)函数返回指定日期对应的月份,范围为1~12。

SELECTbirthday,MONTH(birthday)FROMwangfalin;

mysql时间函数时间差(mysql时间日期函数使用方法)(10)

【YEAR】

YEAR()函数从指定日期值中来获取年份值。

SELECTCURTIME(),CURRENT_TIME(),CURTIME()+00

mysql时间函数时间差(mysql时间日期函数使用方法)(11)

【DATE_ADD和ADDDATE】

DATE_ADD(date,INTERVALexprtype)和ADDDATE(date,INTERVALexprtype)两个函数的作用相同,都是用于执行日期的加运算。

  • date是DATE或DATETIME的起始值
  • INTERVALexprtype是要添加到起始日期值的间隔值

Type值

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

SELECTCURTIME(),CURRENT_TIME(),CURTIME()+01

mysql时间函数时间差(mysql时间日期函数使用方法)(12)

【DATE_SUB和SUBDATE】

DATE_SUB(date,INTERVALexprtype)和SUBDATE(date,INTERVALexprtype)两个函数作用相同,都是执行日期的减法运算。

  • date是DATE或DATETIME的起始值
  • expr是一个字符串,用于确定从起始日期减去的间隔值。type是expr可解析的间隔单位,例如DAY,HOUR等
SELECTCURTIME(),CURRENT_TIME(),CURTIME()+02

mysql时间函数时间差(mysql时间日期函数使用方法)(13)

【ADDTIME、SUBTIME】

ADDTIME(time,expr)函数用于执行时间的加、减法运算。添加expr到time并返回结果。

SELECTCURTIME(),CURRENT_TIME(),CURTIME()+03

mysql时间函数时间差(mysql时间日期函数使用方法)(14)

SELECTCURTIME(),CURRENT_TIME(),CURTIME()+04

mysql时间函数时间差(mysql时间日期函数使用方法)(15)

【DATEDIFF】

DATEDIFF(date1,date2)返回起始时间date1和结束时间date2之间的天数。date1和date2为日期或date-time表达式。计算时只用到这些值的日期部分。

SELECTCURTIME(),CURRENT_TIME(),CURTIME()+05

mysql时间函数时间差(mysql时间日期函数使用方法)(16)

【DATE_FORMAT】

DATE_FORMAT(date,format)函数是根据format指定的格式显示date值。

  • date:是要格式化的有效日期值
  • format:是由预定义的说明符组成的格式字符串,每个说明符前面都有一个百分比字符(%)

%a

工作日的缩写名称(Sun~Sat)

%b

月份的缩写名称(Jan…Dec)

%c

月份,数字形式(0~12)

%D

带有英语后缀的该月日期(0th,2st,3nd,…)

%d

该月日期,数字形式(00~31)

%e

该月日期,数字形式((0~31)

%f

微秒(000000…999999)

%H

以2位数表示24小时(00~23)

%h,%I

以2位数表示12小时(01~12)

%i

分钟,数字形式(00~59)

%j

—年中的天数(001~366)

%k

以24小时(0~23)表示

%l

以12小时(1~12)表示

%M

月份名称(January~December)

%m

月份,数字形式(00~12)

%p

上午(AM)或下午(PM)

%r

时间,12小时制(小时(hh):分钟(mm):秒数(ss)后加AM或PM)

%S,%s

以2位数形式表示秒(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位数形式表示年份

%%

%一个文字字符

SELECTCURTIME(),CURRENT_TIME(),CURTIME()+06

mysql时间函数时间差(mysql时间日期函数使用方法)(17)

【WEEKDAY】

WEEKDAY(d)返回d对应的工作日索引。0表示周一,1表示周二,……,6表示周日。

SELECTCURTIME(),CURRENT_TIME(),CURTIME()+07

mysql时间函数时间差(mysql时间日期函数使用方法)(18)

【常用日期表示方法】

【今天】

SELECTCURTIME(),CURRENT_TIME(),CURTIME()+08

mysql时间函数时间差(mysql时间日期函数使用方法)(19)

【昨天】

SELECTCURTIME(),CURRENT_TIME(),CURTIME()+09

mysql时间函数时间差(mysql时间日期函数使用方法)(20)

【上周】

SELECTNOW(),SYSDATE()0

mysql时间函数时间差(mysql时间日期函数使用方法)(21)

【本周】

SELECTNOW(),SYSDATE()1

mysql时间函数时间差(mysql时间日期函数使用方法)(22)

【上月】

SELECTNOW(),SYSDATE()2

mysql时间函数时间差(mysql时间日期函数使用方法)(23)

【本月】

SELECTNOW(),SYSDATE()3

mysql时间函数时间差(mysql时间日期函数使用方法)(24)

End


发表评论:

最近发表
网站分类
标签列表