2016-05-16 4 views
0

Sieht so einfach aus, aber es ist eigentlich so schwer, zumindest für mich.mysql wählen wo - wiederholt sich jeden n. Tag ab dem Startdatum - zwischen zwei Daten

Was ich: mysql-System ähnlich:

start_date | end_date | interval 
-------------------------------- 
2016-05-01 00:00:00 | 2016-05-26 00:00:00 | 3 

Was ich als Ergebnisse erzielen will: etwas hinzufügen, dass diese schwer eigentlich macht. Ich möchte diese Ergebnisse abhängig vom aktuellen Datum erhalten. Also sagen wir heute ist 2016-05-05. Die Ergebnisse, die ich will, sind wie folgt:

*2016-05-01* <- past date so no match 
*2016-05-04* <- past date so no match 
**2016-05-07** 
**2016-05-10** 
**2016-05-13** 
etc... 

Ich möchte nicht, wenn möglich, temporäre Tabellen.

Modul funktioniert nicht für mich, zumindest für die verschiedenen Möglichkeiten, die ich es ausprobiert habe.

+0

Danke mr. Erdbeere. – Zhi

Antwort

0

Im Allgemeinen sind Fragen der Datenanzeige am besten in der Anwendungsebene Code behandelt, aber nur zum Spaß ...

Bitte beachte, dass ich eine Tabelle von ganzen Zahlen, aber Sie können SELECT 1 i UNION SELECT 2 UNION ... etc stattdessen verwenden, wenn Sie möchten. ..

DROP TABLE IF EXISTS my_table; 

CREATE TABLE my_table(start_date DATE,end_date DATE,date_interval INT NOT NULL); 

INSERT INTO my_table VALUES 
('2016-05-01','2016-05-26',3); 

SELECT * FROM my_table; 
+------------+------------+---------------+ 
| start_date | end_date | date_interval | 
+------------+------------+---------------+ 
| 2016-05-01 | 2016-05-26 |    3 | 
+------------+------------+---------------+ 

SELECT * FROM ints; 
+---+ 
| i | 
+---+ 
| 0 | 
| 1 | 
| 2 | 
| 3 | 
| 4 | 
| 5 | 
| 6 | 
| 7 | 
| 8 | 
| 9 | 
+---+ 

SELECT start_date + INTERVAL i*date_interval DAY dt 
    FROM my_table 
    , ints 
WHERE start_date + INTERVAL i*date_interval DAY <= end_date; 
+------------+ 
| dt   | 
+------------+ 
| 2016-05-01 | 
| 2016-05-04 | 
| 2016-05-07 | 
| 2016-05-10 | 
| 2016-05-13 | 
| 2016-05-16 | 
| 2016-05-19 | 
| 2016-05-22 | 
| 2016-05-25 | 
+------------+ 
+0

Danke, ich habe gerade die Sache hinzugefügt, die mich tatsächlich um Hilfe gebeten hat. Wenn du das auch ansprechen könntest, werde ich so dankbar sein! – Zhi

+0

Vielleicht können Sie das für sich selbst herausfinden ;-) – Strawberry

+0

fair genug :)) – Zhi

Verwandte Themen