SQL 输出变量值
SQL Output variable value
我有以下有效的 SQL 语句。它发现房间何时可用。我现在唯一的问题是我需要将 p.DayShort
转换为日期值。 DayShort
将 return, S,M,Tu,W,Th,F,Sa。我有一个名为 week_beginning
的变量,它是星期日的日期,所以我们假设值为 11/8/2015,我希望每行数据 return 从 11/8 返回一个日期/2015,所以如果 DayShort 是 W,我希望它为 return 11/11/2015(基本上是 week_beginning 变量的 + 3)。谁能教我怎么做?
SELECT
p.DayShort, p.PeriodNumber, i.StartTime, i.EndTime
FROM
PeriodList AS p
LEFT JOIN
PeriodInformation AS i ON p.pk_PeriodListID = i.fk_PeriodListID
LEFT JOIN
Lesson AS l ON l.fk_PeriodListID = i.fk_PeriodListID
LEFT JOIN
LessonRoom a ON l.pk_LessonID = a.fk_LessonID
LEFT JOIN
RoomList r ON a.fk_RoomID = r.pk_RoomID
WHERE
r.RoomCode = "SportsHall"
AND p.PeriodNumber NOT IN ('\"GAM/J\",\"ACT,J\",\"7E\",\"8E\",\"6E\",\"5E\"')
AND i.Rotation = "Sum"
这个怎么样?
SELECT DATEADD('d', p.Offset, week_beginning) as thedate, p.DayShort, p.PeriodNumber, i.StartTime, i.EndTime
FROM (
SELECT PeriodList.*,
CASE
WHEN DayShort = 'M' THEN 1
WHEN DayShort = 'Tu' THEN 2
WHEN DayShort = 'W' THEN 3
WHEN DayShort = 'Th' THEN 4
WHEN DayShort = 'F' THEN 5
WHEN DayShort = 'Sa' THEN 6
ELSE 0
END as Offset
FROM PeriodList
) AS p
-- no change for the rest of the query
注意这里的 DATEADD 是它在 SQL 服务器中的存在方式 -- SQL 的其他版本可能不同。
我有以下有效的 SQL 语句。它发现房间何时可用。我现在唯一的问题是我需要将 p.DayShort
转换为日期值。 DayShort
将 return, S,M,Tu,W,Th,F,Sa。我有一个名为 week_beginning
的变量,它是星期日的日期,所以我们假设值为 11/8/2015,我希望每行数据 return 从 11/8 返回一个日期/2015,所以如果 DayShort 是 W,我希望它为 return 11/11/2015(基本上是 week_beginning 变量的 + 3)。谁能教我怎么做?
SELECT
p.DayShort, p.PeriodNumber, i.StartTime, i.EndTime
FROM
PeriodList AS p
LEFT JOIN
PeriodInformation AS i ON p.pk_PeriodListID = i.fk_PeriodListID
LEFT JOIN
Lesson AS l ON l.fk_PeriodListID = i.fk_PeriodListID
LEFT JOIN
LessonRoom a ON l.pk_LessonID = a.fk_LessonID
LEFT JOIN
RoomList r ON a.fk_RoomID = r.pk_RoomID
WHERE
r.RoomCode = "SportsHall"
AND p.PeriodNumber NOT IN ('\"GAM/J\",\"ACT,J\",\"7E\",\"8E\",\"6E\",\"5E\"')
AND i.Rotation = "Sum"
这个怎么样?
SELECT DATEADD('d', p.Offset, week_beginning) as thedate, p.DayShort, p.PeriodNumber, i.StartTime, i.EndTime
FROM (
SELECT PeriodList.*,
CASE
WHEN DayShort = 'M' THEN 1
WHEN DayShort = 'Tu' THEN 2
WHEN DayShort = 'W' THEN 3
WHEN DayShort = 'Th' THEN 4
WHEN DayShort = 'F' THEN 5
WHEN DayShort = 'Sa' THEN 6
ELSE 0
END as Offset
FROM PeriodList
) AS p
-- no change for the rest of the query
注意这里的 DATEADD 是它在 SQL 服务器中的存在方式 -- SQL 的其他版本可能不同。