需要定时抽取上周一至周日的数据,查找相关资料后总结四个函数如下,方便以后查用,欢迎指正

1.NOW()函数返回当前日期和时间,

SELECT NOW();out 2021-10-27 17:23:22    ---当前日期

2.CURDATE()函数只返回当前日期,以“YYYY-MM-DD”格式,

SELECT CURDATE();out  2021-10-27  ---当前日期

3.WEEKDAY(date) 函数返回date星期的索引,0 代表周一,1 代表周二,2 代表周三…6代表周日

SELECT WEEKDAY(CURDATE())
out   2   ---此时为周三

4.DATE_SUB函数为从 start_date 起始值中减去时间间隔值,语法:

DATE_SUB(start_date,INTERVAL expr unit);

其中参数:start_date是起始值,expr是一个字符串,用于确定从起始日期减去的间隔值,unit是expr可解析的间隔单位,例如MONTH、DAY、HOUR等,如果unit值为负,则和DATE_ADD()函数类似,

示例:现在的日期减去1天

SELECT DATE_SUB(CURDATE(),INTERVAL 1 DAY);out 2021-10-26

且此函数可以自动调整日期格式,如下例为03-01 减去1HOUR后,得到2月最后一天日期,并以带时间的形式展示了出来,MONTH为单位时同样适合

SELECT DATE_SUB('2021-03-01',INTERVAL 1 hour);out 2021-02-28 23:00:00

综上,获取本周周一思路:

先获取当前日期 使用CURDATE()函数,

然后获取当前日期为周几 使用 WEEKDAY(CURDATE()) 函数,返回的值为 2 ,

最后用现在的日期减去这个值,即为周一日期

SELECT CURDATE();out 2021-10-27SELECT WEEKDAY(CURDATE());out 2SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) DAY);out 2021-10-25  ---本周一

获取周日思路:

获取现在为周几(取索引值),然后减去6(索引减6,相当于周几减去7天),得到还差几天到周日的负数(大概这个意思),然后调用DATE_SUB函数即可,

用DATE_SUB感觉有点绕,调用DATE_ADD函数加上这个差值容易理解

SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) - 6 DAY);out 2021-10-31SELECT DATE_ADD(CURDATE(),INTERVAL 6- WEEKDAY(CURDATE()) DAY);out 2021-10-31

获取上周日,上周一思路:

已经获取到了本周一的日期,再多减一天就能得到上周日数据,获取上周一即多减7天(相对本周一),最后如下

SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) + 0 DAY),DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) - 6 DAY);out 2021-10-25   2021-10-31   ---本周一 周日SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) + 7 DAY),DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) + 1 DAY);out 2021-10-18   2021-10-24  ---上周一 上周日

mysql获取本周一周日,上周一上周日日期及用到的NOW(),CURDATE(),KEEKDAY(date),DATE_SUB()函数相关推荐

  1. mysql 获取数据库中最大的日期

    mysql 获取数据库中最大的日期 select DATE_FORMAT(max(over_time),'%Y-%m-%d') from 表名格式化参考 %a 缩写星期名 %b 缩写月名 %c 月,数 ...

  2. mysql伪列的使用,mysql伪列的妙用,mysql获取近几天的日期用来连表查询

    文章目录 写在前面 伪列的使用 初步 获取前几行 获取近几天的日期(用于关联查询) 配合UNION的妙用 UNION获取几行数据 获取近50天的日期(不使用其他表) 举一反三 写在前面 我们都知道or ...

  3. php获取当前周得周一_php一行代码获取本周一,本周日,上周一,上周日,本月一日,本月最后一日,上月一日,上月最后一日日期...

    //本周一 echo date('Y-m-d', (time() - ((date('w') == 0 ? 7 : date('w')) - 1) * 24 * 3600)); //w为星期几的数字形 ...

  4. php一行代码获取本周一,本周日,上周一,上周日,本月一日,本月最后一日,上月一日,上月最后一日日期

    <?php //本周一 echo date('Y-m-d', (time() - ((date('w') == 0 ? 7 : date('w')) - 1) * 24 * 3600)); // ...

  5. mysql获取两个表中日期字段的最小差值

    一.前言 开发中碰到的需求,获取两个数据表中日期字段的差值,并且取得差值最小的那条数据.本篇文章主要讲述如果通过函数获取mysql的日期差值,实际编写时遇到的问题,并且分析需求,得出最终sql等. 二 ...

  6. mysql 获取当天时间差_php-当前日期和时间-获取、插入到mysql、8小时时差错误

    获取 使用函式 date() 实现 显示的格式: 年-月-日 小时:分钟:妙 相关时间参数: a - "am" 或是 "pm" A - "AM&quo ...

  7. 记录MySQL获取系统当前年份月份日期

    获取年份 YEAR(CURDATE()): 2022 获取月份 MONTH(CURDATE()): 6 当前时间 DATE(CURDATE()): 2022-06-13 获取年月 date_forma ...

  8. mysql 获取工作日上一天的数据 环比MYSQL 两日期之间的工作日(除去周六日,不考虑节假日)

    现有数据格式为 -- 原始数据 period_wid num20190625 3020190624 3320190621 3120190620 21-- 目标数据格式period_wid num la ...

  9. php获取7天,php 获取未来七天的日期和星期

    php获取未来七天的日期和星期代码 for($i=4;$i<8;$i++){ $dateArray[$i]=date('Y-m-d',strtotime(date('Y-m-d').'+'.$i ...

最新文章

  1. 5G时代下,边缘计算产品的未来展望
  2. 如何修改PHP的memory_limit限制
  3. GitBash上传项目出现[fatal: remote origin already exists.]问题解决方案
  4. mysql 互斥_MySql中互斥量mutex的实现
  5. Asp.Net+Jquery.Ajax详解5-$.getScript
  6. aix java home_java程序员工作日子一(java_home 配置)
  7. HAL驱动的串口编程陷阱
  8. 主角有智能芯片的种田小说_5本搞笑玩梗的良品小说,文风轻松幽默,一本正经地逗你笑...
  9. Spring Cloud(8):Sleuth和Zipkin的使用
  10. 添加内核驱动模块(4)(mydriver.c+ Konfig+Makefile )
  11. Ctfmon.exe是什么进程?
  12. psp能装安卓软件吗_psp移植手机游戏大全 安卓手机玩psp游戏排行榜
  13. java is alphabetic_Unicode字符类\p{IsAlphabetic}
  14. 关于以太网没有有效的ip配置问题解决方法
  15. 浅谈ES6后的TDZ时间死区
  16. 数据库系统(PostgreSQL)
  17. H5 百度高德地图导航
  18. 南卡315打假!揭露山寨耳机“十宗罪”!
  19. 赚的钱不花掉就不算自己的钱?
  20. 怎么检查计算机启动程序,如何查看电脑开机启动项

热门文章

  1. 【时间序列】关于时间竞赛,不得不知的十大模型。
  2. 牛顿法求解非线性方程
  3. Linux基础——“C语言高级编程” C语言中的细节你真的知道吗?
  4. Chrome调试工具的使用,浏览器截图方法
  5. 基于机智云和ShineBlink的智能加湿器方案
  6. 微信小程序学习笔记(五) 云开发
  7. Vagrant安装Centos
  8. 原生JS封装 toast 弹层,自动关闭
  9. 习题4-11 兔子繁衍问题 (详解)(15 分)
  10. HDU——1804 Deli Deli