两列日期之间的变量

时间:2014-05-20 03:01:51

标签: mysql

我正在尝试进行MySQL选择交易但是我很难让它完全按照我的意愿行事。我试图选择所有行,其中一个变量(@cdate)位于两列(begindate和endingdate)中列出的日期之间(或者是两个日期之一) - 我尝试过多次尝试这样做但是我的表用我尝试的所有东西继续返回0行。

资源表:

RID | begindate  | endingdate 
 1  | 2014-05-16 | 2014-05-17
 2  | 2014-05-15 | 2014-05-17
 3  | 2014-05-14 | 2014-05-15
 4  | 2014-05-17 | 2014-05-19

所以在这种情况下我们试图选择*哪里" 2014-05-16"要么是列出日期,要么是列出的2个日期之间,理想情况下返回RID:1和2

我在想

SELECT        *
FROM            resources
WHERE        (begindate <= @cdate) AND (endingdate >= @cdate)

@cdate =&#34; 2014-05-16&#34;在这种情况下

但这不起作用

任何建议都表示赞赏。

2 个答案:

答案 0 :(得分:2)

通常,当您在值之间选择内容时,最佳选项为BETWEEN关键字。所以查询必须像这样

SELECT * FROM resources WHERE @cdate BETWEEN begindate AND endingdate

答案 1 :(得分:1)

SELECT *
FROM resources
WHERE @cdate BETWEEN begindate AND endingdate