【发布时间】:2014-03-08 08:14:10
【问题描述】:
我有一张包含一堆日期的表格(准确地说是期权到期日期)。我需要查询此数据库以查找存储在表中的特定一周的最后一天。
我将查询此表的所有内容是年、月和特定周。基于此,我需要找到存储在与此匹配的表中的日期。
我创建了以下查询来查找 2013 年 3 月 28 日这个特定日期
SELECT M_SETNAME, M_LABEL, M_MAT FROM OM_MAT_DBF
WHERE M_SETNAME = 'IMM_OSET '
AND MONTH(M_MAT) = 3
AND YEAR(M_MAT) = 2013
AND ((DATEPART(day,M_MAT)-1)/7 + 1) = 5
你们知道我可以如何更改最后一个条件,以便将 3 月 28 日视为本月的第 5 周,而不是目前的第 4 周。
【问题讨论】:
-
嗯,3 月 28 日是该月的第四周(第一周 1-7;第二周 8-14;第三周 15-21;第四周 22-28 )。您计算一个月中的周数的逻辑是什么?
-
我的逻辑将一周的最后一天视为一周。所以,3 月 1 日是星期五,因此当我将最后一个条件设置为 1 时,我的查询将给我 2013 年 3 月 1 日。所以基本上是 3 月 1 日 - 第 1 周 3 月 8 日 - 第 2 周 3 月 15 日 - 第 3 周 3 月 22 日 - 3 月第 4 周28 - 第 5 周(不是 29 b/c,该表只有 3 月 28 日,而不是 3 月 29 日)
-
第一天是星期六的月份如何计算? (第一周没有星期五!)另外,什么是“一周的最后一天”...有些日历从周日(周日至周六)开始,而另一些则从周一(周一至周日)开始。