【发布时间】:2018-01-25 16:03:43
【问题描述】:
我有这个表结构:
CREATE TABLE Schedule
([Day] varchar(13), [Starts] varchar(57), [Ends] varchar(57))
;
INSERT INTO Schedule
([Day], [Starts], [Ends])
VALUES
('2', '09:00', '15:00'),
('5', '10:00', '12:00'),
('3', '09:00', '18:00')
;
这个简单的查询显示当前行:
SELECT
DATENAME(weekday, Day - 1) as days,
Starts,
Ends
FROM
Schedule
order by Day
最后一个查询得到这个结果:
Day Starts Ends
--- ------- ----
Tuesday 09:00 15:00
Wednesday 09:00 18:00
Friday 10:00 12:00
我想用没有出现在寄存器中的日期填写表格
这是我想要得到的最终结果:
Day Starts Ends
--- ------- ----
Monday NULL NULL
Tuesday 09:00 15:00
Wednesday 09:00 18:00
Thursday NULL NULL
Friday 10:00 12:00
我怎样才能得到这个?,谢谢
【问题讨论】:
-
这可能工作一周,但如果超过 1 周怎么办?
-
在这种情况下,我的日程安排一直是这个结构,所以我不必担心超过一周
-
day代表什么?实际的工作日?就像@Tanner 说的,如果超过一周怎么办?我会制作一个名为“工作日”的表格并将您的日子放在那里,然后左连接到您的日程表。如果 Schedule 中有空天,Left join 将添加 NULL 行。但这仍然无助于您(明显)使用表 ID 作为星期几的问题。
标签: sql-server sql-server-2012 days