Rya*_*yan 6 sql sql-server type-conversion
在SQL Server中,您可以使用DATENAME函数将星期几作为字符串
declare @date datetime
set @date = '12/16/08'
select datename(dw, @date)
Run Code Online (Sandbox Code Playgroud)
返回"星期二"
并且您可以使用DATEPART函数将星期几作为整数
declare @date datetime
set @date = '12/16/08'
select datepart(dw, @date)
Run Code Online (Sandbox Code Playgroud)
返回3
但是说我有一个varchar,其中包含字符串"Tuesday",我想将其转换为3的整数表示.当然,我可以毫不费力地写出转换,但我宁愿使用内置函数.这样的功能存在吗?
Rus*_*rry 12
遗憾的是,没有内置功能,但您可以像这样创建自己的功能:
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
Run Code Online (Sandbox Code Playgroud)
HLG*_*GEM 11
您应该使用描述和数值创建星期几表,而不是编写函数.你可以简单地加入到表中来获取数字.
如果您有多种方式存储多天(可能在基于字符的系统中),您可以将所有变体放入表中,因此TUE,Tues.,Tuesday将全部映射到相同的整数.
| 归档时间: |
|
| 查看次数: |
17321 次 |
| 最近记录: |