SQL输出变量值

SQL输出变量值,sql,filemaker,Sql,Filemaker,我有下面的SQL语句可以工作。它会在房间可用时查找。我现在唯一的问题是需要将p.DayShort转换为日期值DayShort将返回S、M、Tu、W、Th、F、Sa。我有一个名为week\u start的变量,它是星期天的日期,因此我们假设值为2015年11月8日,我希望每行数据返回一个从2015年11月8日开始的日期,因此如果DayShort是W,我希望它返回2015年11月11日(基本上是week\u start变量的+3)。有人教我怎么做吗 SELECT p.DayShort, p

我有下面的SQL语句可以工作。它会在房间可用时查找。我现在唯一的问题是需要将
p.DayShort
转换为日期值
DayShort
将返回S、M、Tu、W、Th、F、Sa。我有一个名为
week\u start
的变量,它是星期天的日期,因此我们假设值为2015年11月8日,我希望每行数据返回一个从2015年11月8日开始的日期,因此如果DayShort是W,我希望它返回2015年11月11日(基本上是week\u start变量的+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 Server中是如何存在的——其他SQL版本可能会有所不同。

这个怎么样

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 Server中的存在方式——其他类型的SQL可能会有所不同。

S,M,Tu,W,Th,F,S
是这些真实值,因为有2个
S
非常吸引人,星期天表示为S,星期六表示为Sa。是的,这是存储在我数据库中的值。你的关系数据库管理系统是什么?我正在使用FileMaker 14,这不是我所知道的最适合SQL的,但我正在测试这个SQL查询,而我编写的脚本获取相同的数据。
S,m,Tu,W,Th,F,S
这些是真正的值吗,因为有两个
S
很好的捕获,星期日表示为S,星期六表示为Sa。是的,这是存储在我数据库中的值。你的RDBMs是什么?我正在使用FileMaker 14,这不是我所知道的最适合SQL的,但正在测试这个SQL查询,而不是我编写的获取相同数据的脚本。找到了答案。FileMaker不支持日期添加功能,但多亏了你的案例,当你为我指出了正确的方向:)我找到了它。FileMaker不支持日期添加功能,但多亏了您的案例,您为我指明了正确的方向:)