2009-09-25 19 views
5

Wie wähle ich Datensätze zwischen zwei Daten in zwei Spalten?Wählen Sie Datensätze zwischen zwei Daten in zwei Spalten

Select * From MyTable Where 2009-09-25 is between ColumnDateFrom to ColumnDateTo 

Ich habe ein Datum (2009-09-25) und Ich mag die Datensätze auszuwählen, die in dem Zeitraum ColumnDateFrom zu ColumnDateTo ist.

Probe

Aufnahme 1 ColumnDateFrom = 2009-08-01 UND ColumnDateTo = 2009-10-01

Record 2 ColumnDateFrom = 2010-08-01 UND ColumnDateTo = 2010-10-01

Wenn mein Eingangsdatum 2009-09-28 ist; Ich habe dann bekommen Datensatz 1

+2

Unter welcher Datenbank-Engine? –

+1

Und welche bestimmte Datenbank-Engine ist das? Und wie werden Sie das Datum an das SQL übergeben, als ein eingebettetes Literal (dh als Teil des SQL) oder als Parameter? Und welches Client-Framework verwenden Sie, um mit der Datenbank zu kommunizieren? Was ist im Grunde deine Frage? Die SQL-Syntax? Wie schreibe ich es in C# oder PHP oder was auch immer? oder was? Weil, ideenmäßig, Sie direkt mit der Ausnahme sind, dass die Syntax für das Schreiben des Datums deaktiviert ist (aber ich muss wissen, welche Datenbank-Engine Sie verwenden, um Ihnen zu sagen, was richtig ist). –

+0

Danke, Ich benutze SQL 2005 –

Antwort

1
select * 
from MyTable 
where ColumnDateFrom <= '2009-09-25' 
    and ColumnDateTo >= '2009-09-25' 
3

wenn ich richtig verstehe, versuchen Sie dies:

SELECT 
    * 
    FROM MyTable 
    WHERE ColumnDateFrom <= '2009-09-25' AND ColumnDateTo >= '2009-09-25' 
+0

Schön, aber ich mag besser ... wählen * von MyTable wo '2009-09-25' zwischen ColumnDateFrom und ColumnDateTo –

+0

Vielen Dank für Ihre schnelle Antwort ... SEHR NICE ! Ich bin jetzt fertig und kann nach Hause gehen ... Wünsche euch allen ein schönes Wochenende! –

+1

Ich benutze nie BETWEEN, ich finde es einfacher zu lesen> =,>, <= und/oder

4

Try this:

SELECT * FROM MyTable WHERE '2009-09-25' BETWEEN ColumnDateFrom AND ColumnDateTo 
+1

Danke, feine Arbeiten ... –

0

mysql:

select * from MyTable where '2009-09-25' between ColumnDateFrom and ColumnDateTo 
+0

Danke Dies ist die Lösung –

5

Norm Zwischen funktionieren sollte (T-SQL).

SELECT * FROM MyTable WHERE @MYDATE BETWEEN ColumnDateFrom AND ColumnDateFrom 
0

Entfernen Sie einfach die „Ist“

Select * From MyTable 
Where '2009-09-25' Between ColumnDateFrom to ColumnDateTo 

erinnere mich an die Zeit portiomn zu prüfen, ob die Spaltenwerte Datum und Uhrzeit in ihnen ... (vorausgesetzt DateOnly() ist eine Funktion, die Streifen die Zeit aus einer Datetime-Spalte)

Select * From MyTable 
Where '2009-09-25' Between DateOnly(ColumnDateFrom) 
         To DateOnly(ColumnDateTo) 
+0

Danke, Es ist mit und ohne die Zeit portium –

+0

ist es dieser Funktionsaufruf auf der Datumsspalte wird verhindern, dass jede Index Verwendung gut funktioniert nicht ? –

Verwandte Themen