当前位置:  开发笔记 > 编程语言 > 正文

将一天的名称转换为整数表示

如何解决《将一天的名称转换为整数表示》经验,为你挑选了2个好方法。

在SQL Server中,您可以使用DATENAME函数将星期几作为字符串

declare @date datetime
set @date = '12/16/08'
select datename(dw, @date)

返回"星期二"

并且您可以使用DATEPART函数将星期几作为整数

declare @date datetime
set @date = '12/16/08'
select datepart(dw, @date)

返回3

但是说我有一个varchar,其中包含字符串"Tuesday",我想将其转换为3的整数表示.当然,我可以毫不费力地写出转换,但我宁愿使用内置函数.这样的功能存在吗?



1> Russ Bradber..:

遗憾的是,没有内置功能,但您可以像这样创建自己的功能:

CREATE FUNCTION dbo.WeekDay(@DayOfWeek Varchar(9))
RETURNS INT
            AS
    BEGIN
    DECLARE @iDayofWeek INT
    SELECT @iDayofWeek = CASE @DayOfWeek
                    WHEN 'Sunday' THEN 1
                    WHEN 'Monday' THEN 2
                    WHEN 'Tuesday' THEN 3
                    WHEN 'Wednesday' THEN 4
                    WHEN 'Thursday' THEN 5
                    WHEN 'Friday' THEN 6
                    WHEN 'Saturday' THEN 7
        END
    RETURN (@iDayofWeek)
    END
GO



2> HLGEM..:

您应该使用描述和数值创建星期几表,而不是编写函数.你可以简单地加入到表中来获取数字.

如果您有多种方式存储多天(可能在基于字符的系统中),您可以将所有变体放入表中,因此TUE,Tues.,Tuesday将全部映射到相同的整数.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有