在开始时间和结束时间之间选择开始时间 [英] Select start time between start and end time

查看:51
本文介绍了在开始时间和结束时间之间选择开始时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想获取开始时间,但它不应该在开始时间和结束时间之间(通过另一个表的引用获取).我已经试过了,但出现错误.任何人都可以帮助我吗?

I want to fetch the start time but it should not be in between start and end time (fetching with the reference of another table). I ve tried up but am getting error. Can anyone help me on this.?

SELECT DISTINCT right(start_time,7) AS st_time
FROM Session_Info
WHERE CourseName = 'Java'
  AND (right(start_time,7) NOT IN BETWEEN
         (SELECT right(start_time,7)
          FROM Session_Info
          WHERE Session_Id IN
              (SELECT Session_Id
               FROM sessions
               WHERE UserId='a')) AND
         (SELECT right(end_time,7)
          FROM Session_Info
          WHERE Session_Id IN
              (SELECT Session_Id
               FROM sessions
               WHERE UserId='a')))

也在重复使用相同的查询,例如(从会话中 UserId='a' 中选择 Session_Id)如何将其存储在变量中?

Also am reusing the same query like (select Session_Id from sessions where UserId='a') how to store it in a variable?

推荐答案

您可以将代码重写为类似

You can rewrite your code to something like

SELECT  DISTINCT right(start_time,7) AS st_time
FROM    Session_Info
WHERE   CourseName = 'Java'
        AND Session_ID IN (SELECT Session_ID FROM sessions WHERE UserId = 'a')
        AND NOT (right(start_time,7) BETWEEN right(start_time,7) AND right(end_time,7))

或使用 CTE

;WITH mySessionIDs (Session_ID)
(
    SELECT  Session_ID
    FROM    sessions
    WHERE   UserId = 'a'
)
SELECT  DISTINCT right(si.start_time,7) AS st_time
FROM    Session_Info si
        INNER JOIN mySessionIDs
            ON si.Session_ID = mySessionIDs.Session_ID
WHERE   si.CourseName = 'Java'
        AND NOT (right(start_time,7) BETWEEN right(start_time,7) AND right(end_time,7))

这篇关于在开始时间和结束时间之间选择开始时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆