首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql查询一周内的数据,解决一周的起始日期是从星期日(星期天|周日|周天)开始的问题

前言 今天又遇到很坑的问题了,因为外国友人每一周的起始日期是周日,跟我们的不一样,我们每一周的起始日期是星期一,这样导致我要用mysql统计一周的数据的时候,对于我们来说,查询的记录包括:上周日的记录...+本周的数据到星期六 这样的数据,这就不符合我们的要求,把上周日的数据也统计进来了。...所以也是找了好久的资料,才终于解决 一、问题发现: 默认我一开始写的测试查询本周上周数据的语句是这样的: #查询本周 select A.sushenum,cast(A.dfdata as DECIMAL...查询到的记录是 ? 大家可以很明显的看到2018年12月2日的记录也查出来了,12月2日是星期日。为了让大家更直观的看,我把12月的月份截出来 ? 所以这样查询出来的记录,对于我们来说是有问题的。...从上面YEARWEEK()函数API可以知道,还有mode这个字段是可以自己设置一周是从星期几开始的,不写的话默认是星期日为一周的开始日期,这里为了适用我们的系统,将星期一设置为一周的开始日期,我们就给

3.7K21

DM达梦数据库关于时间日期函数的总结

查询当前日期是当年第几天 select to_char(sysdate,'ddd') from dual; 5....查询本周是当年的第几周 select to_char(sysdate,'iw') from dual; 7....dual; --去年的今天 8.关于w、ww、iw的用法和区别: ww:按每年的1月1日为第一周第一天,1月8日为第二周第一天 w:与ww功能类似,不过它是按每月的1日为每周第一天,例如1日为当月第一周第一天...,8日为第二周第一天 iw:自然周,为星期一至星期日算一周,且每年的第一个星期一为第一周 select to_char(sysdate,‘ww’) from dual; – 查询今年第几周,每天第一天为第一周第一天...,‘d’) from dual; --意周日为一周起始日期 查询当周第一天 select trunc(日期,‘iw’) from dual;–意周日为一周结束日期 查询当周第一天 结束语 这边文章总结了大梦数据库常用的一些有关时间及日期方面的函数

89610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    女朋友让我解释为什么一到年底,部分网站就会出现日期混乱的现象?

    这是微信官方出的公众号管理的APP,上面赫然写着一篇文章的发文日期是2020/12/29。 ? ? ? ?...什么是Week Year 我们知道,不同的国家对于一周的开始和结束的定义是不同的。如在中国,我们把星期一作为一周的第一天,而在美国,他们把星期日作为一周的第一天。...同样,如何定义哪一周是一年当中的第一周?这也是一个问题,有很多种方式。 比如下图是2019年12月-2020年1月的一份日历。 ? 到底哪一周才算2020年的第一周呢?...2、因为周日(周一)才是一周的第一天,所以,要从2020年的第一个周日(周一)开始往后推7天才算这一年的第一周。...3、因为12.29、12.30、12.31是2019年,而1.1、1.2、1.3才是2020年,而1.4周日是下一周的开始,所以,第一周应该只有1.1、1.2、1.3这三天。 ? ? ?

    96820

    漫话:如何给女朋友解释为什么一到年底,部分网站就会出现日期混乱的现象?

    SimpleDateFormat SimpleDateFormat是Java提供的一个格式化和解析日期的工具类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。...什么是Week Year 我们知道,不同的国家对于一周的开始和结束的定义是不同的。如在中国,我们把星期一作为一周的第一天,而在美国,他们把星期日作为一周的第一天。...同样,如何定义哪一周是一年当中的第一周?这也是一个问题,有很多种方式。 比如下图是2019年12月-2020年1月的一份日历。 到底哪一周才算2020年的第一周呢?...2、因为周日(周一)才是一周的第一天,所以,要从2020年的第一个周日(周一)开始往后推7天才算这一年的第一周。...3、因为12.29、12.30、12.31是2019年,而1.1、1.2、1.3才是2020年,而1.4周日是下一周的开始,所以,第一周应该只有1.1、1.2、1.3这三天。

    86420

    PowerBI中短小而强悍的相对日期切片器

    不过,比如今天是5月12日,周二,我其实不想看4月21日-5月11日或者是4月22日-5月12日的对比,我想看的是整周的对比,那么筛选器为我们提供了周(日历)的选项: 但是,我们发现,明明筛选了三周,但是第一周只有周日...这里需要注意的是,有个小bug,系统默认的周(日期)是从周日开始计算的。...而在国内,一周的开始往往是周一,所以筛选器在筛选时将上一个周的周日(4.19)包含在内了,而将最后一个周日(5.10)剔除掉了,所以造成了如上图的情况。 那怎么办呢?...所以只能重新修订一下日期表,将周日作为一周的第一天,再来看结果,就对了: 但是这样确实不太方便,不符合业务逻辑。 那怎么办呢?...PowerBI还是给我们留了个小的修补方法: 我们可以定位标记日期,将结束日规定为5月10日周日,这样往前推三个周就是准确的了: 我么不仅可以查看往前的日期,我们也可以查看某个特定日期之后的一段日期来做分析

    1.5K20

    通过日期偏移来解决因中美习惯不同而导致的PowerBI相对日期切片器周分析错误问题

    不过,在进行周分析时,如果选择的范围是周(日历),那么你会发现日期的选择范围和我们预想的不一样(分析时日期是2020年5月20日周三): ?...比如我们选择的是本周,日期应当是5月18日(周一)-5月24日(周日),但是呢,切片器上选定的范围却是5月17日(周日)到5月23日(周六),这是因为美国把周日当做一周的开始,而在国内每个周的第一天却是周一...所以这个问题没有几乎办法100%解决,除非开发人员特地为中国用户设置选项,通过选项可以设定一个周的第一天是周一。 所以我们还得想别的办法。...所以在结果矩阵中,是根据date列去筛选的,所以会得到正确的按照Monday为一周的第一天来显示的数据。...一个办法是添加一个空白按钮将这个日期范围给隐藏起来,用户直接看表中的日期即可: ? 当然,追求完美的你,也可以试试通过其他办法让这个地方就显示date中正确的日期: ?

    1.4K30

    用react手写一个简单的日历

    日历主体的行数:现在我们看到的日历基本上为6行,因为一个月最多为31天,假设当前月的第一天为上一月最后一周的最后一天。如果是五行数据的话则只显示了29天,这也是为什么显示6行数据的原因。...这个问题的核心是:当前月份显示的42条数据的第一天是哪一天?...这个问题的解决思路还要从上面的设计说起,上面提到日历主题的行数时,说到“假设当前月的第一天为上一月最后一周的最后一天”,那么42条数据显示的内容的第一条数据还要根据当前月的第一天是第一天所在周的第几天。...上面的代码逻辑是假设日历的排列顺序是周一围最开始的(如果你的日历也是将周日放在日历的第一天,没什么问题,可是在中国是将周日放在最后一天的),这也就意味着前面的实现还需要考虑日历的放置顺序,因为日历是按照普通的周一到周日...,还是周日到周一,我们获取的当月日历的第一天是不同的。

    3.9K20

    一个线上问题让我发现了Calendar类中的秘密-周一真的是每周的第一天吗?

    问题就出在清明节假收假上班后的第一天,那是一个下着小雨的周日。这种天气配合周天以及三天假期的快乐后遗症让我慢悠悠地到了公司,把没做完的需求盘点下做完然后就可以早点下班了。...那么只能往更深层次看,于是点进Calendar相关的源码发现了其中的秘密:在Calendar类中,周日被默认为每周的第一天,周一为每周的第二天。...那么回到我们上面的代码,问题的原因就水落石出了:今天是周日,在周日这天获取的本周一自然就是明天,在我们看来就是获取到了下周一,这里程序逻辑上没问题,但与我们实际场景使用逻辑相悖,因此针对周日需要特殊处理下...) { //1-2-1.如果是周日,将日期回退7天以上获取上周的周一 cal.add(Calendar.DATE, -7); } //1-3.将日期设置为周一 cal.set(Calendar.DAY_OF_WEEK...cal = Calendar.getInstance(); //1-2.设置周一为一周的第一天 cal.setFirstDayOfWeek(Calendar.MONDAY); //1-3.将日期设置为周一

    8510

    python自学——函数-strftim

    strftime()的语法是strftime(格式, 日期/时间, 修正符, 修正符, ...)...它可以用以下的符号对日期和时间进行格式化: %a - 简写的星期几  %A - 完整的星期几  %b - 缩写的月份名称  %B - 完整的月份名称  %c - 首选日期和时间表示  %C - 世纪值(...警告:在Sun Solaris上周日=1  %U - 当年的周数,第一个星期日作为第一周的第一天  %V - 本年度ISO 8601的周数(01到53),其中,第1周是在本年度至少4天的第一个星期,星期一作为一周的第一天... %W - 当年的周数,与第一个星期一作为第一周的第一天  %w - 星期为一个小数,星期日=0  %x - 没有时间的日期表示  %X - 无日期首选的时间表示  %y - 一年无世纪(范围从00到...%d %H:%M:%S','now','localtime'); 结果:2006.10.17 21:41:09 其实更好的用法是这样的,比如统,本月或本年的支出: select strftime(

    1.1K30

    大厂都是怎么用Java8代替SimpleDateFormat?

    这是由于混淆SimpleDateFormat的各种格式化模式: 小写y是年 大写Y是week year,即所在的周属于哪一年 一年第一周的判断方式 从getFirstDayOfWeek()开始,完整的7...该计算方式和区域相关,对zh_CN区域,2020年第一周条件:从周日开始的完整7天,2020年包含1天即 可。...显然,2019年12月27日周日到2020年1月2日周六是2020年第一周,得出的week year就是2021年。...若把区域改为法国 Locale.setDefault(Locale.FRANCE); 则week yeay就还是2020年,因为一周的第一天从周一开始算,2020年的第一周是2019年12月28日周一开始...3.2 with快捷时间调节 TemporalAdjusters.firstDayOfMonth得到当前月的第一天 TemporalAdjusters.firstDayOfYear()得到当前年的第一天

    1.8K10

    使用echarts做一个可视化报表(二)

    本次要在折线图上添加一个功能:选择不同日期,展示对应的图表 需求拆解: 1、前端增加一个日期筛选框,按照【周】进行切换; 2、前端切换日期后即触发请求,向后端重新请求一次数据; 3、后端根据日期返回对应一周内的数据...前端新增日期筛选框 前端使用的element-ui,在组件库里找到了一个按【周】切换的日期组件 html代码如下 按周查询 日期变化后,触发请求 --> 因为我希望切换日期后能重新够触发请求 所以这里使用 @change 绑定了之前写好的query_value_statistics...(start_time, '%Y-%m-%d'))=yearweek('{}') group by week;".format(now_date) # yearweek(xx,mode=1),表示周一是一周的第一天...;默认周日是第一天 # print(sql) conn.ping(reconnect=True) cursor.execute(sql) t = cursor.fetchall

    58520

    用 moment 实现获取本周、前 n 周、后 n 周开始结束日期

    本文用 moment.js 实现了获取本周、前 n 周、后 n 周开始结束日期,即周一、周日日期的方法。...当 i=1,获取的是上周一和上周日的日期; 当 i=2,获取的是上上周一和上上周日的日期 ...以此类推 @param i */ getLastWeek(i) { let weekOfDay...当 i=1,获取的是下周一和下周日的日期; 当 i=2,获取的是下下周一和下下周日的日期 ...以此类推 @param i */ getNextWeek(i) { let weekOfDay...(1) //获取上周开始结束日期 let lastWeek2 = DateTimeUtils.getLastWeek(2) //获取前两周的那一周即上上周开始结束日期 let lastWeek3 =...(3) //获取后三周那一周开始结束日期 想获取前几周或后几周的开始结束日期,就在调用 getLastWeek(i) 和 getNextWeek(i) 的时候把相应的数字传进去即可。

    4.5K30

    关于Oracle单行函数与多行函数

    ,截取结束索引); 字符串的索引下标是从 1 开始的 SUBSTR()函数还可以设置为负数,表示由后的指定位置开始 6、 去掉左右空格函数:字符串 TRIM(字符串 | 列) 数字函数 1、 四舍五入函数...trunc(sysdate, 'd') from dual;--返回本周的第一天(周日为第一天) 3、 求模:数字 MOD(数字 1 | 列 1,数字 2 | 列 2) 日期函数 当前的系统日期时间,...:要求计算出每一位雇员到今天为止雇佣的年限 A、 例如:今天是 2014 年 08 月 12 日,CLARK 的雇佣日期是:1981 年 06 月 09 日 B、 到今天 CLARK 已经在公司服务了:...months , TRUNC(SYSDATE - ADD_MONTHS(hiredate,MONTHS_BETWEEN(SYSDATE,hiredate))) day FROM emp ; 3、 求出指定的下一个一周时间数的日期...:日期 NEXT_DAY(日期 | 列,一周时间数) 4、 求出指定日期所在月的最后一天日期:日期 LAST_DAY(日期 | 列) 转换函数 1、 转字符串数据:字符串 TO_CHAR(数字 | 日期

    1.1K10
    领券