我有这个查询,它返回星期几。一周中的天数为 0-6(周一至周五)。
select ID, DayOfWeek from MyTable
ID DayOfWeek
1 0
2 0
3 4
有没有办法为每个 int DayOfWeek 替换一个别名?枚举未存储在数据库中,因此我无法加入。
我希望能够编写一个查询并让它看起来像这样:
ID DayOfWeek
1 Monday
2 Monday
3 Friday
我有这个查询,它返回星期几。一周中的天数为 0-6(周一至周五)。
select ID, DayOfWeek from MyTable
ID DayOfWeek
1 0
2 0
3 4
有没有办法为每个 int DayOfWeek 替换一个别名?枚举未存储在数据库中,因此我无法加入。
我希望能够编写一个查询并让它看起来像这样:
ID DayOfWeek
1 Monday
2 Monday
3 Friday
您应该考虑将查找存储在一个新表中......但只是为了让您了解您的选项,您也可以使用该DATENAME(WEEKDAY)
功能:
SELECT DATENAME(WEEKDAY, 0)
回报:
Monday
如果您无法存储要加入的表,则可以使用CASE
:
SELECT ID,
CASE DayOfWeek
WHEN 0 THEN 'Monday'
WHEN 1 THEN 'Tuesday'
...
END AS DayOfWeek
FROM MyTable
您可以尝试以下操作:
SELECT ID, DATENAME(dw, DATEADD(d, DayOfWeek, CAST('2013-08-05' AS date)))
FROM MyTable
逻辑是:
'2013-08-05'
是)DayOfWeek
天数DATENAME(dw)
那个日期开始编辑
或者更简单的方式DATENAME(dw, DayOfWeek)
::现场演示
datename(weekday, DayOfWeek)
应该将 int 转换为名称。