gpt4 book ai didi

sql - 查找一周的最后一天

转载 作者:行者123 更新时间:2023-12-03 23:55:41 27 4
gpt4 key购买 nike

我有一个包含一堆日期的表格(准确地说是期权到期日期)。我需要查询此数据库以查找存储在表中的特定周的最后一天。

查询此表所需要的只是年、月和特定周。基于此,我需要找到存储在与此匹配的表中的日期。

我创建了以下查询来查找 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 周。

最佳答案

您还可以使用 DATEPART 来获取周数(在一年中),但是,您也可以获取每个月的第 1 天,并且也可以使用该周,这样您就可以拥有:我的日期的周 - 第一天的周本月 + 1。

这里有一个例子...

DECLARE @Dt datetime

SELECT @Dt='03-28-2013'

SELECT DATEPART( wk, @Dt) - DATEPART( wk, Convert(Date,Convert(varchar(4),YEAR(@Dt))
+ '-' + Convert(varchar(2), MONTH(@Dt))
+ '-' + Convert(varchar(2), 1))) + 1

编辑:另外,查看您的代码,您可以添加天花板。如果结果 == 2.7,则意味着它通过了第 2 周,但是,当它实际上应该是 3 时,它会四舍五入为 2。

如果您添加 CEILING 和 CONVERT 到十进制应该工作..
SELECT  MONTH(@Dt), 
YEAR(@Dt),
((CEILING(Convert(decimal,DATEPART(day,@Dt)-1)/7)) + 1)

关于sql - 查找一周的最后一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21686675/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com