mysql函数之日期函数

目录

1.日期函数

(1)获取当前日期

(2)计算两个DATE值之间的天数

(3)获取日期所有月份的日的信息

(4)在一个日期的基础上添加时分秒信息

(5)在一个日期的基础上减去时分秒信息

(6)格式化日期

(7)获取指定日期是星期几,可以根据mysql语言的设置来返回不同国家的星期

(8)获取日期的工作日索引值,即星期日为1,星期一为2,星期六为7 

(9)提取日期的一部分,来获取当前日期的年月日,时分秒,周,季度等信息

(10)获取指定日期值的月份

(11)字符串转换为日期时间值

(12)获取当前日期时间,并可以设置0到6的小数秒精度

(13)返回两个TIME或DATETIME值之间的差值

(14)计算两个DATE或DATETIME值之间的差值

(15)获取日期的周数

(16)返回一个日期的工作日索引值,即星期一为0,星期二为1,星期日为6

(17)从指定日期值中来获取年份值

(18)获取传入日期所在月份的第一天和最后一天


1.日期函数

(1)获取当前日期

查询语句:select CURDATE(),CURRENT_DATE(),CURRENT_TIME(),CURRENT_TIMESTAMP(),NOW()
结果:    2022-12-10,2022-12-10,12:29:42,2022-12-10 12:29:42,2022-12-10 12:29:42

(2)计算两个DATE值之间的天数

查询语句:select DATEDIFF('2022/01/01','2022/01/05')
结果:    -4

两个日期的格式可以不一样,结果是第一个日期减去第二个日期,如果要得到日期之间的周数和月数,可以对结果除以7或30,然后再进行四舍五入等操作

(3)获取日期所有月份的日的信息

查询语句:select  DAY(NOW()),DAY(LAST_DAY(NOW()))
结果:    10	31

可以获取日期在当前月的第几天,可以结合LAST_DAY函数来获取当前月的天数

(4)在一个日期的基础上添加时分秒信息

查询语句:select DATE_ADD('2022-12-11 12:58:33',INTERVAL '1' DAY)
结果:    2022-12-12 13:58:33

单位可以设成天数,小时数,分钟数;也可以是两两的结合,中间用空格分开

无效或者错误的日期会返回null

(5)在一个日期的基础上减去时分秒信息

查询语句:select DATE_SUB('2022-12-11 12:58:33',INTERVAL '1' DAY)
结果:    2022-12-10 12:58:33

用法和上面的一致

(6)格式化日期

查询语句:select DATE_FORMAT('2022-12-11 12:58:33','%Y%m%d')
结果:    20221211

格式有很多,年月日之间也可以添加中划线或者斜线等分隔符

(7)获取指定日期是星期几,可以根据mysql语言的设置来返回不同国家的星期

查询语句:select DAYNAME(NOW())
结果:    Saturday

SELECT @@lc_time_names;
SET @@lc_time_names = 'en_US';

可以通过上面两个语句来查询和设置语言环境

(8)获取日期的工作日索引值,即星期日为1,星期一为2,星期六为7 

查询语句:select DAYOFWEEK('2022-12-10 12:58:33')
结果:    7

(9)提取日期的一部分,来获取当前日期的年月日,时分秒,周,季度等信息

查询语句:select EXTRACT( YEAR FROM '2022-12-10 12:58:33') YEAR,
                EXTRACT( MONTH FROM '2022-12-10 12:58:33') MONTH,
                EXTRACT( DAY FROM '2022-12-10 12:58:33') DAY,
			    EXTRACT( WEEK FROM '2022-12-10 12:58:33') WEEK,
		        EXTRACT( QUARTER FROM '2022-12-10 12:58:33') QUARTER,
			    EXTRACT( HOUR FROM '2022-12-10 12:58:33') HOUR,
			    EXTRACT( SECOND FROM '2022-12-10 12:58:33') SECOND
结果:    2022	12	10	49	4	12	33

(10)获取指定日期值的月份

查询语句:select MONTH('2022-12-10 12:58:33')
结果:    12

(11)字符串转换为日期时间值

查询语句:select STR_TO_DATE('10-10,2022 hhhh qqqq','%m-%d,%Y')
结果:    2022-10-10

查询语句:SELECT STR_TO_DATE('2018','%Y');
结果:    2018-00-00

字符串和格式的分隔符要一致,否则无法转换成功

会忽略输入字符串末尾的额外字符

将输入字符串不提供的所有不完整的日期值设置为零

(12)获取当前日期时间,并可以设置06的小数秒精度

查询语句:select SYSDATE(6)
结果:    2022-12-10 14:11:05.472185

(13)返回两个TIME或DATETIME值之间的差值

查询语句:SELECT TIMEDIFF('12:10:10','10:10:10')
结果:    02:00:00

(14)计算两个DATEDATETIME值之间的差值

查询语句:select TIMESTAMPDIFF(month,'2018-01-01','2019-01-01')
结果:    12

单位可以设置成年月日,时分秒,周,季度等

(15)获取日期的周数

查询语句:select WEEK('2022-12-10')
结果:    49

有两个参数: 

  • date是要获取周数的日期。
  • mode是一个可选参数,用于确定周数计算的逻辑。它允许您指定本周是从星期一还是星期日开始,返回的周数应在052之间或053之间。

(16)返回一个日期的工作日索引值,即星期一为0,星期二为1,星期日为6

查询语句:select WEEKDAY('2022-12-10')
结果:    5

(17)从指定日期值中来获取年份值

查询语句:select YEAR('2022-10-10')
结果:    2022

(18)获取传入日期所在月份的第一天和最后一天

查询语句:select LAST_DAY(curdate())

          select DATE_ADD(curdate(),interval -day(curdate())+1 day)   
结果:    2022-12-31
          2022-12-01

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值