如何使用SQL命令在SQL Server 2005中打印日期编号的日期名称?

时间:2011-09-26 11:56:55

标签: sql sql-server sql-server-2005

我希望能够传递一天中的数字,如1,2,3或7,它会返回日期名称,如星期日,星期一,星期二或星期六。我知道可以选择使用case语句,但我想使用SQL命令执行此操作,这是否可能?

DECLARE @m VARCHAR
SET @m=1
SELECT CASE WHEN @m=1 THEN 'Sunday' END

我在寻找答案时已对此question发表了评论,但用户@harper建议我提交一个包含完整说明的新问题。

修改 除了一个之外,目前对案例陈述给出了答案。所以现在我再次提出我的问题是

“我想使用SQL命令执行此操作,这是否可能?”

4 个答案:

答案 0 :(得分:5)

试试这个:

declare @m varchar 
set @m=1 
SELECT DATENAME(DW,CAST(@m AS INT))

答案 1 :(得分:2)

SQL Server Denali具有CHOOSE功能,可以使其更简洁。与此同时,只需在UDF中使用CASE

CREATE FUNCTION dbo.WeekDay(@d int)
RETURNS VARCHAR(9)
WITH SCHEMABINDING, RETURNS NULL ON NULL INPUT
AS
BEGIN
RETURN 
(
SELECT 
    CASE @d
        WHEN 1 THEN 'Sunday'
        WHEN 2 THEN 'Monday'
        WHEN 3 THEN 'Tuesday'
        WHEN 4 THEN 'Wednesday'
        WHEN 5 THEN 'Thursday'
        WHEN 6 THEN 'Friday'
        WHEN 7 THEN 'Saturday'
    END
)
END

答案 2 :(得分:0)

CREATE FUNCTION dbo.udf_DayOfWeek(@dtDate DATETIME)
RETURNS VARCHAR(10)
AS
BEGIN
DECLARE @rtDayofWeek VARCHAR(10)
SELECT @rtDayofWeek = CASE DATEPART(weekday,@dtDate)
WHEN 1 THEN 'Sunday'
WHEN 2 THEN 'Monday'
WHEN 3 THEN 'Tuesday'
WHEN 4 THEN 'Wednesday'
WHEN 5 THEN 'Thursday'
WHEN 6 THEN 'Friday'
WHEN 7 THEN 'Saturday'
END
RETURN (@rtDayofWeek)
END
GO

-- Call this function like this:
SELECT dbo.udf_DayOfWeek(GETDATE()) AS DayOfWeek

最初来自:SQL SERVER – UDF – Get the Day of the Week Function

答案 3 :(得分:0)

SELECT DATENAME(DW,CAST(a AS INT))

我们可以将 a 的值更改为 0到6
默认,0-星期一到6-星期日 如果我们使用 a = 7 ,那么它将被计算为 0 ,因为7-7 = 0。