MySQL查询不含周末的五天前的日期
发布时间:2008-11-11 12:28:00
我需要查询从现在算起五天前的日期。按照商业习惯,这五天应该不包含星期六和星期天。
专家回答:
对于许多跟商业日期有关的情况,最好的解决方案是使用日历表格。例如,使用办公时间(2001年5月22日)查询两个日期之间的时间差。
我们知道在这个例子中,假日不会计算在内。很难明白为什么假日不被计算在内,但是周末却会被计算在内。但是既然假日不被计算在内,我们就可以应用一个公式。要开发这个公式,让我们首先探讨一下所有的可能性。
如果今天是星期一,那么,往回数,我们跳过星期天和星期六,星期五是一天前,星期四是两天前,如此类推,那么“五天前”就是上个星期一。这里的“五天前”就意味着把周末排除出去,得出我们想要的日期,并不是真正字面意义上的五天前。我们可以从备忘录上看到差别。
如果今天是星期二,那么,往回数,星期一是一天前,跳过星期天和星期六,星期五是两天前,星期四是三天前,如此类推,那么“五天前”就是上个星期二。
这个模式——“五天前”就是上一个星期的同一天(星期X)——可重复到星期三、星期四和星期五。
到了星期六,这个模式就不可用了。在星期六,五天前是星期一。在星期天,因为我们不计算星期六,五天前也是星期一。
把我们的讨论发现总结成如下数据:
要获得“五天前”的日期,从今天减去的总天数(包括周末)显示在右边列中。
我们给一个星期里的每一天排上序号,星期天(Sunday)=1,星期一(Monday)=2,如此类推,到星期六(Saturday)=7。把这些日子的序号排列在需要减去的天数前,我们会得到如下数据:
if today is
weekday subtract
Monday
2 7
Tuesday
3 7 Wednesday 4 7
Thursday
5 7
Friday
6 7
Saturday
7 5
Sunday
1 6
公式如下:
subtract = 7 - 2*(weekday/7) + (weekday-2)/7
记住,这是要获得“五天前”的日期而需要从今天减去的天数。在这个公式里,除法是整数除法(即下舍入)。请不要问我这个公式是怎么发现的,反正是试差法的成果。
我们要怎么把这个公式应用到SQL里呢?下面是一个运用MySQL句法的例子:
以下为引用的内容:
selectdistinct
cust.fname
,cust.lname
,cust.phone
fromordersaso
inner
joincustomersascust
oncust.id=orders.cust_id
whereo.date_ordered=
date_sub(current_date
,interval
7-2*floor(dayofweek(current_date)/7)
+floor((dayofweek(current_date)-2)/7)
day)
ando.date_shippedisnull
这个查询可以获得“五天前”下订单而货还没有运到的客户的联系方式。
猜你喜欢
- 网上有很多提供在线按钮制作、文字标题制作、Logo制作服务的网站,它们可以非常方便了让大家轻松的获得效果出色的各类图标型的图片,下面就快来看
- 设计与开发之间本有一线界限,但当时代步入又一个十年,这个线变得更加模糊甚至感觉不到它的存在。使用PS设计网页版面,足矣?或许五年前是吧!现在
- Introduction简介So what is POSH? No, it's not just some new clothing
- MYSQL数据库以它短小、方便、速度快、免费等优点成为很多网站目前首选数据库,但一般都是用PHP+MYSQL相结合来开发各种动态页面,其实A
- 在了解了JavaScript1.7的相关更新后,我们再继续关注JavaScript1.8的新特性。在W3C Group带来的JavaScri
- 代码如下:<% '--------定义部份------------------ Dim XH_P
- 如果没有了解栅格系统是什么,建议看完这篇文章以后再回来。其实有很种 CSS 写法实现栅格系统,很多 CSS 库也都会提供类似的栅格系统实现(
- 八卦是种优良品质,特别是用在技术上时。来看几个Reset CSS的八卦问题吧:你知道世界上第一份reset.css在哪么?*&nb
- 初步确定是病毒破坏了文件的读写权限,现放出修复工具请中招朋友的测试!!使用方法:压缩包中文件全部解压或者直接运行压缩包中的iisfixer.
- 分页浏览功能是常见的Web应用功能,对于MySQL数据库来说可以很轻松的使用limit语句实现分页,而对于SQL Server数据库来说,常
- 在今天网络开发方面,JavaScript起了很关键的作用;像jQuery, MooTools, Prototype等等JavaScript框
- 不知各位是否有手写代码的习惯。例如:要在一个单元格插入一段CSS代码,或者一段Javascript代码,怎么做才比较快捷方便呢?虽然Drea
- Web Standards Solutions The Markup and Style Handbook - Chapter 1 清单首发
- 当然,每个人都可以编写CSS代码,甚至你现在已经让它为你的项目工作了。但是CSS还可以更好吗?开始用这5个Tips改进你的CSS吧!1.合理
- 首先让我们看下 YUI 是如何处理的:var toObject = function(a) { var o = {
- 作者:Roland Smart原文链接:http://www.adaptivepath.com/ideas/newsletter/archi
- 从2004年开始,我开始进入雅虎的异常表现小组。我们是一个很小的队伍,专门针对雅虎的产品进行质量检测和改进,我作为一个后端工程师,现在却开始
- 数据库中提取长长的文章,总是有碍网页的排版布局。所以,想固定地提取一部分字符,然后后面有……替代。相关推荐:当标题不能显示完整的时候 1、原
- 1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Se
- 是否看见大站的广告都是放在内容中间实现文字环绕的呢,一般普通小站广告只能放在内容开头或者结尾,也许大站的cms系统带这个功能吧,我们小站常用