簡體   English   中英

在SQL Server 2000中使用星期幾和星期幾制作日期

[英]Make date with month week and weekday in SQL Server 2000

在SQL Server 2000中,我具有:

  • 年:2015,
  • 月:01,
  • 周:4
  • 工作日:2

我需要:2015-01-19

我有 :

  • 年:2015,
  • 月:01,
  • 周:3
  • 工作日:3

我需要:2015-01-13

等等。

提前致謝。

您在一個月的第一周的意思是相當含糊的,但是采用從第一天開始的一周的通用定義,您可以使用日期算術進行此操作。 結果是這樣的:

select convert(datetime,
               @year * 10000 + @month*100 + (@week - 1) * 7 + (@weekday - 1),
               112)

老實說,我不確定100%SQL Server 2000是否可以正確轉換日期。 您可能需要先將其轉換為字符串:

select convert(datetime,
               cast(@year * 10000 + @month*100 + (@week - 1) * 7 + (@weekday - 1) as varchar(8)),
               112)

而且,正如評論所述,您不想使用不受支持的軟件。 現在該升級了。

也許像這樣?

--SET DATEFIRST 7 --this is the default; but include & tweak as needed for your culture

declare @Year int = 2015
,@Month int = 01
,@Week int = 4
,@WeekDay int = 2
,@date date

set @date = CAST(cast(@year as nvarchar(4)) + '-' + cast(@month as nvarchar(2)) + '-01' as date)
set @date = DATEADD(day,(@week - datepart(week,@date)) * 7,@date) 
set @date = DATEADD(day,(@weekDay - datepart(weekday,@date)) % 7,@date) 

select @date --2015-01-19

select DATEPART(week,@date) --4
select DATEPART(weekday,@date) --2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM