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

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. 十个最值得阅读学习的C开源项目代码
  2. linux里c库和gnu c库,Linux下的C的库文件和头文件有什么区别-
  3. 【译】 WebSocket 协议第六章——发送与接收消息(Sending and Receiving Data)
  4. xfce4自己使用的主题设置备份以及xfce4默认的壁纸路径
  5. 图片中的暖色或冷色滤色片是否会带来更多点击? —机器学习A / B测试
  6. 我的世界光影mod怎么用_玩转光影!闪光灯、反光板怎么用才高级?
  7. Vmware下CentOs7 桥接模式下配置固定IP
  8. C# CSV文件读取(带换行单元格中内容处理)
  9. mysql innodb 并发 插入 慢_InnoDB并发插入,居然使用意向锁?
  10. struct seq_file
  11. NHibernate视频教程
  12. JS 逻辑中断(二)
  13. 对SQLite数据库操作 操作db文件
  14. w ndows键是哪一个,Win10截图快捷键是哪个?Windows10自带截屏快捷键使用方法大全...
  15. 使用downloadm3u8和ffmpeg下载m3u8格式视频
  16. 机器学习(一):定义
  17. 联手中信银行 物品互赠平台宣布“不卖只送”
  18. svn使用(服务器端和客户端)
  19. 【linux】重新启动项目
  20. NASBench101-安装及简单样例使用指南

热门文章

  1. Spring HtmlUtils把HTML编码转义,可将HTML标签互相转义
  2. crontab每小时执行
  3. 集群、微服务与分布式
  4. 【我的OpenGL学习进阶之旅】着色器GLSL运行时报错: ERROR: 0:40: ‘gl_FragColor‘ : undeclared identifier
  5. 有哪些软件堪称神器,却不为大众所知?
  6. 【2022年】注册美区ID? 有手就行!
  7. 小甲鱼python入门笔记(二)
  8. android 设置APN
  9. 给出经纬度、判断是否在指定区域
  10. 【详细解说】单精度浮点数float取值范围