我的sql脚本出了什么问题?它总是显示错误的语法。
Select Case
When(DAY(GETDATE()) <= 23 and DAY(GETDATE()) >= 9) Then Convert(varchar(10),YEAR(getdate()))+'-'+Convert(varchar(10),MONTH(getdate()))+'-'+'9'
When(DAY(GETDATE()) <= 8 and DAY(GETDATE()) >= 24) Then Convert(varchar(10),YEAR(getdate()))+'-'+Convert(varchar(10),MONTH(getdate()))+'-'+'24'它应显示2012-11-9或2012-11-24,具体取决于当前日期。
发布于 2012-11-22 17:29:00
可能你错过了end,试试这个:
Select Case
When(DAY(GETDATE()) <= 23 and DAY(GETDATE()) >= 9)
Then Convert(varchar(10),YEAR(getdate()))+'-'+Convert(varchar(10),MONTH(getdate()))+'-'+'9'
When(DAY(GETDATE()) <= 8 and DAY(GETDATE()) >= 24)
Then Convert(varchar(10),YEAR(getdate()))+'-'+Convert(varchar(10),MONTH(getdate()))+'-'+'24'
end as Date1
from YourTable发布于 2012-11-22 17:29:19
你需要End你的案例
Select Case
When(DAY(GETDATE()) <= 23 and DAY(GETDATE()) >= 9) Then Convert(varchar(10),YEAR(getdate()))+'-'+Convert(varchar(10),MONTH(getdate()))+'-'+'9'
When(DAY(GETDATE()) <= 8 and DAY(GETDATE()) >= 24) Then Convert(varchar(10),YEAR(getdate()))+'-'+Convert(varchar(10),MONTH(getdate()))+'-'+'24'
End发布于 2012-11-22 17:35:43
除了缺少end之外,您的一个case条件永远不会为真
When(DAY(GETDATE()) <= 8 and DAY(GETDATE()) >= 24) 使用
case when DAY(GETDATE()) between 9 and 23 then CONVERT(varchar(8),getdate(),120) + '9'
else CONVERT(varchar(8),getdate(),120) + '24'
end此外,您的逻辑看起来可能是可疑的。你真的想在10月2号和30号都在10月24日返回吗?
https://stackoverflow.com/questions/13509453
复制相似问题