我有一个表(我们称之为 MyData),其中包含一些信息,并且还在单独的列中存储月份和年份,但没有日期,所以它看起来像这样:
一些数据1 |一些数据2 |月 |年份|一些数据N...
... ... 1 2021 ...
... ... 2 2021 ...
... ... 3 2021 ...
... ... 8 2022 ...
... ... 12 2022 ...
... ... 5 2023 ...
... ... 7 2023 ...
我需要获取从 2021 年 3 月到今天的所有数据。
我试图将月份和年份列转换为日期,同时添加 01 作为日期的日期部分(具体日期并不重要,因为它甚至没有存储在表中)。然后,我想将表中转换后的日期与我所需的 2021 年 3 月日期 ('2021-03-01) 进行比较。我什至不确定是否有必要将白天部分也添加到其中任何一个中。
我真的很困惑,不知道该怎么做。也许有比转换为日期并比较更简单的解决方案?
我已经尝试过:
SELECT DATEFROMPARTS([Year], [Month], 01) AS DATE
FROM dbo.MyData)
所以现在我有日期格式的所有月/年列,但真的不知道从这里去哪里。
我想做一些类似的事情
SELECT * FROM MyData
WHERE (SELECT DATEFROMPARTS(year_nbr, month_nbr, 01) AS DATE
FROM dbo.TEG_BusinessPlanChange)) > '2021-03-01'
提前致谢。
在您的情况下,最好的解决方案是将两个条件结合起来,如下所示。
SELECT [Data]
,[Month]
,[Year]
FROM [Test].[dbo].[Table]
WHERE ([Month] >= 3 AND [Year] = 2021) OR [Year] > 2021