2015-04-03 58 views
1

如何使用case语句确定当前日期是星期六,星期日还是星期几?我已经尝试了以下所以任何指针我要去哪里错将不胜感激。谢谢。如何在sql case语句中使用datename

SELECT * FROM mytable WHERE day = (SELECT CASE aday 
             WHEN DATENAME(dw, GETDATE()) = 'Saturday' THEN 'Sat' 
             WHEN DATENAME(dw, GETDATE()) = 'Sunday' The 'Sun' 
             ELSE 'Weekday'); 
+0

什么是'day'和'aday'你的表字段定义? – 2015-04-03 21:21:49

+0

'case aday'应该是'case'。而你错过了'结束'。也没有理由将其作为子查询编写,尽管这是有效的。 – 2015-04-03 21:23:36

+0

'SELECT * FROM mytable WHERE day = CASE WHEN DATENAME(dw,GETDATE())='Saturday'THEN'Sat' 当DATENAME(dw,GETDATE())='星期天'然后'Sun' ELSE'Weekday 'end;' – 2015-04-03 21:25:55

回答

1
SELECT * FROM mytable WHERE day = (
    SELECT CASE DAYNAME(aday) 
     WHEN 'Saturday' THEN 'Sat' 
     WHEN 'Sunday' THEN 'Sun' 
     ELSE 'Weekday' END 
) 
;