MySQL获取日期

函数注释:

CURDATE()函数:用于返回当前日期,只包含年、月、日部分,格式为YYYY-MM-DD;

DATE_SUB() 函数:从日期减去指定的时间间隔。

INTERVAL 关键字:用于添加或减去日期和时间值。

WEEKDAY()函数:用于查找给定日期的工作日值——返回一个日期的索引值 周一为0 周二为1...如果今天是周五 weekday(curdate())则返回 4。

STR_TO_DATE(str,format)函数:是将时间格式的字符串(str),按照所提供的显示格(format)转换为DATETIME类型的值。

concat()函数:将多个字符串连接成一个字符串。

DATE_FORMAT(date,format)函数:则是把数据库的日期转换为对应的字符串格式;

last_day(date):用于获取指定日期的给定月份的最后一天;

MAKEDATE()函数:根据年份和天数值创建并返回日期。

QUARTER()函数:用于返回给定日期值的一年的季度。它返回一个从1到4的数字。

YEAR()函数接受date参数,并返回日期的年份。

NOW()函数:以"YYYY-MM-DD HH:MM:DD"或"YYYYMMDDHHMMSS.uuuuuuu"格式的字符串或数字返回配置的时区中的当前日期和时间

  • 获取当前周第一天和最后一天日期

# 当前周第一天(周一为周的第一天)
SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) DAY);
# 当前周第一天(周日为周的第一天)
SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) + 1 DAY);

# 当前周最后一天(周日为最后一天)
SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) - 6 DAY);
# 当前周最后一天(周六为最后一天)
SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) - 5 DAY);
  • 获取当前月第一天和最后一天日期

# 当前月第一天
SELECT STR_TO_DATE(CONCAT(DATE_FORMAT(CURDATE(),'%Y-%m-'),'01'), '%Y-%m-%d');
# 当前月最后一天
SELECT  LAST_DAY(CURDATE());
  • 获取上个月第一天和最后一天

# 上个月第一天
SELECT STR_TO_DATE(CONCAT(DATE_FORMAT(CURDATE() - INTERVAL 1 MONTH ,'%Y-%m-'),'01'), '%Y-%m-%d');
# 上个月最后一天
SELECT  LAST_DAY(CURDATE() - INTERVAL 1 MONTH );
  • 获取上个月第一天和最后一天

# 上个月第一天
SELECT STR_TO_DATE(CONCAT(DATE_FORMAT(CURDATE() - INTERVAL 1 MONTH ,'%Y-%m-'),'01'), '%Y-%m-%d');
# 上个月最后一天
SELECT  LAST_DAY(CURDATE() - INTERVAL 1 MONTH );
  • 获取下个月第一天和最后一天

# 下个月第一天
SELECT STR_TO_DATE(CONCAT(DATE_FORMAT(CURDATE() + INTERVAL 1 MONTH ,'%Y-%m-'),'01'), '%Y-%m-%d');
# 下个月最后一天
SELECT  LAST_DAY(CURDATE() + INTERVAL 1 MONTH );
  • 获取下个月第一天和最后一天

# 下个月第一天
SELECT STR_TO_DATE(CONCAT(DATE_FORMAT(CURDATE() + INTERVAL 1 MONTH ,'%Y-%m-'),'01'), '%Y-%m-%d');
# 下个月最后一天
SELECT  LAST_DAY(CURDATE() + INTERVAL 1 MONTH );
  • 获取当季第一天和最后一天

# 当季第一天
SELECT MAKEDATE(YEAR(CURDATE()),1) + INTERVAL QUARTER(CURDATE())*3-3 MONTH;
# 当季最后一天
SELECT LAST_DAY(MAKEDATE(YEAR(CURDATE()),1) + INTERVAL QUARTER(CURDATE())*3-1 MONTH);

  • 获取当年第一天和最后一天日期

# 当年第一天
SELECT str_to_date(CURDATE(year(NOW()),'-01-01'), '%Y-%m-%d');

# 当年最后一天
SELECT str_to_date(concat(year(NOW()),'-12-31'), '%Y-%m-%d');

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值