快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

和记娱乐黄埔怡情:MySQL查询不含周末的五天前的日期



我必要查询从现在算起五天前的日期。按照商业习气,这五天应该不包孕礼拜六和礼拜天。

专家回答:

对付许多跟商业日期有关的环境,最好的办理规划是应用日历表格。例如,应用办公光阴(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

这个查询可以得到“五天前”下订单而货还没有运到的客户的联系要领。

您可能还会对下面的文章感兴趣: