1

startdate2つの列とenddate(タイプの)を持つテーブルがありますDATETIME。開始日と終了日という2つのパラメーターを渡す場合、2つの列から2つの日付の間のすべての日付を表示する必要があります。

すなわち。私はこのテーブルを持っています:

 startdate  enddate
 ---------------------
 6/1/2012   6/7/2012
 6/5/2012   6/9/2012
 6/10/2012  6/15/2012

とのような2つの日付を渡す6/3/20126/20/2012、次の結果セットを表示したいと思います。

  6/5/2012
  6/7/2012
  6/9/2012
  6/10/2012
  6/15/2012

前もって感謝します

4

2 に答える 2

1

UNION内のすべての日付SubQuery。試す、

SELECT allDates
FROM
(
    SELECT startdate as allDates
    FROM table
    UNION
    SELECT endDate as allDates
    FROM table
) a
WHERE allDates BETWEEN '6/3/2012' AND '6/20/2012'
于 2012-08-21T05:04:49.100 に答える
0

MySqlサンプル構文:

CREATE TABLE TEST(STARTDATE DATE,ENDDATE DATE);

INSERT INTO TEST VALUES (NOW(), NOW());
INSERT INTO TEST VALUES ('2012-08-19', '2012-08-15');
INSERT INTO TEST VALUES ('2012-08-17', '2012-08-10');
INSERT INTO TEST VALUES ('2012-08-23', '2012-08-21');

SELECT STARTDATE FROM TEST WHERE STARTDATE BETWEEN '2012-08-15' AND '2012-08-23' 
UNION SELECT ENDDATE FROM TEST WHERE ENDDATE BETWEEN '2012-08-15' AND '2012-08-23' 
ORDER BY STARTDATE;
于 2012-08-21T05:17:54.297 に答える