如何在 SQL 中使用当天作为列名?
我在 SQL Server 中有一个表。
所有日期均以列形式存在于表中(星期一、星期二……)。
列的数据类型是位。
在这种情况下,如何检查当前日期在 where
条件下是否正确?
像这样
select *
from Servis
where [FORMAT(GETDATE(),'dddd')] = 1 --Current day
提前致谢!
I have a table in SQL Server.
All days exist as columns in the table (Monday, Tuesday, ...).
The data types of the columns are bit.
In this case, how can I check current day is true in where
condition?
Like this
select *
from Servis
where [FORMAT(GETDATE(),'dddd')] = 1 --Current day
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以在
WHERE
子句中使用CASE
。db<>fiddle 上的演示此处
You can use a
CASE
in theWHERE
clause.Demo on db<>fiddle here
正如 Larnu 提到的,应该改变设计以便于查询。但是当你坚持保留这个结构时;这是示例:
As Larnu mentioned the design should be changed in order to ease of query. But when you insist to keep this structure; here is the sample: