我有这个查询,它返回一周中的几天。一周的日子是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 :(得分:8)
您应该考虑将查找存储在新表中......但只是为了让您了解自己的选项,您还可以使用DATENAME(WEEKDAY)
函数:
SELECT DATENAME(WEEKDAY, 0)
返回:
Monday
答案 1 :(得分:2)
如果您无法存储要加入的表格,则可以使用CASE
:
SELECT ID,
CASE DayOfWeek
WHEN 0 THEN 'Monday'
WHEN 1 THEN 'Tuesday'
...
END AS DayOfWeek
FROM MyTable
答案 2 :(得分:2)
您可以尝试以下操作:
SELECT ID, DATENAME(dw, DATEADD(d, DayOfWeek, CAST('2013-08-05' AS date)))
FROM MyTable
逻辑是:
'2013-08-05'
是)DayOfWeek
天添加到该日期DATENAME(dw)
修改强> 的
甚至更简单:DATENAME(dw, DayOfWeek)
:Live demo
答案 3 :(得分:1)
datename(weekday, DayOfWeek)
应将int转换为名称。