0
我有以下SQL查询确保将开始和结束日期是在选定范围内
SELECT
users.username, users.first_name, users.last_name, users.description,
sprints.sprint_start_date, sprints.sprint_end_date, users.user_id
FROM
sprints
INNER JOIN
sprints_vs_users ON sprints.sprint_id = sprints_vs_users.sprint_id
RIGHT OUTER JOIN
users ON sprints_vs_users.user_id = users.user_id
WHERE
(sprints.sprint_start_date BETWEEN CONVERT(datetime, @startdate, 103)
AND CONVERT(datetime, @enddate, 103))
AND (sprints.sprint_end_date BETWEEN CONVERT(datetime, @startdate, 103)
AND CONVERT(datetime, @enddate, 103))
如果我们声明@startdate
变量作为26/11/2015
和声明@enddate
变量作为03/12/2015
和如果我们使用的一个例子的27/11/2015
一个sprint_start_date
和sprint_end_date
的4/12/2015
我想与那些冲刺的开始和结束的日期,冲刺所选变量日期期间发生的冲刺日期出现在结果中。然而目前,查询不显示这个结果,我认为这是因为没有出现在26/11/2015
和03/12/2015
之间,虽然我不知道如何解决这个问题,所以任何帮助将不胜感激。
什么数据库是你? Oracle,MySQL,SQL Server,MS? – Walucas
请标记使用的dbms。当涉及到日期/时间时,太多产品与ANSI SQL不兼容。 – jarlh
如果您正在寻找'sprint_start_date'和'sprint_end_date'之间的某些日期在定义的日期范围内(而不是所有的日期都是您的查询现在正在执行的操作),只需使用'OR'而不是'和'。 – SunKnight0