MySQL 时间操作函数

1,748 阅读3分钟

MySQL 时间操作函数

1. 获取当前日期

current_date(), curdate() 这两个函数都是获取当前日期,格式为: 年-月-日

curdate 属性也可以获取当前日期,格式为: 年-月-日

image.png

2. 获取当前时间

curtime(),current_time() 这两个函数都可以获取当前时间,格式为: 时:分:秒

current_time 这个属性也可以获取当前时间,格式为: 时:分:秒

image.png

3. 获取当前时间和日期

now(), sysdate() 这两个函数都可以获取当前时间,格式为:年-月-日 时:分:秒

区别:now()取的是语句开始执行的时间,sysdate()取的是动态的实时时间

image.png

now() 取自 mysql 的一个变量 timestamp,而这个变量在语句开始执行的时候就确定了,在整个语句执行过程中不会变化,而sysdate() 是动态的获取当前时间,所有会有三秒的时间差

4. 获取部分值

函数名作用
year(date)获取年份
quarter(date)返回给定日期值所在的季度,1月至3月返回1,4月至6月返回2,7月至9月返回3,10月至12月返回4
month(date)获取月份,数字表示
monthname(date)获取月份的英文名称,比如February
week(date)获取指定日期为当年的第几周。表示范围0-52,并取星期天默认为第一天
week(date[,mode])mode默认为0就是上面的函数,mode为1表示范围1-53,并取星期一为第一天
day(date)一个月的第几天,也就是表示月份多少日
last_day(date)返回给的日期所在月份的最后一天
dayname(date)返回日期的星期名称,如Friday
dayofyear(date)返回一年的第多少天
dayofmonth(date)一个月的第几天,也就是表示月份多少日
dayofweek(date)返回周几
hour(time)返回时间的小时部分,返回值的范围为0至23
minute(time)返回时间的分钟部分,返回值的范围为0至59
second(time)返回时间的秒钟部分,返回值的范围为0至59

5. 计算函数

函数名作用
to_days(date)计算日期参数date和公历元年(0000年1月1日)之间相隔的天数
from_days(n)计算从公历元年(0000年1月1日)开始经过n天后的日期
datediff(date1,date2)获取两个指定日期之间相隔的天数
adddate(date,days)日期参数date加上n天后的日期
subdate(date,days)日期参数date减去n天前的日期
adddate(date,interval exp unit)date加上一段时间间隔后的时间,也可以写成date_add
subdate(date,interval exp unit)date减去一段时间间隔后的时间,也可以写成date_sub
addtime(time,n)time加上n秒后的时间
subdate(time,n)time减去n秒后的时间

to_days(date) 方法是date和公历元年(0000年1月1日)之间相隔的天数 image.png

也可以用来比较两个date直接的天数差 image.png

from_days(n) 从公历元年(0000年1月1日)开始经过n天后的日期,365(一年)内的好像显示不了

image.png

adddate(date,interval exp unit) date加上一段时间间隔后的时间,也可以写成date_add

5天后和5个月后的结果: image.png

本月的第一天: image.png

下个月的第一天:

image.png

addtime(time,n) time加上n秒后的时间

image.png