Frage

Ich habe eine Tabelle, um Header namens „OrderH“. In dieser Tabelle gibt es eine Spalte „Bestelldatum“ genannt. Ich versuche, die Aufträge mit einem Datum innerhalb eines bestimmten Bereichs abzurufen. Ich dachte, dass ich dies mit dem „zwischen“ Stichwort erreichen könnte, aber ich habe kein Glück. Dies ist die SQL Ich habe mit worden fidgiting:

select 
    * 
from
    OrderH h
where
        h.OrderDate between '2009-06-16' and '2009-06-01'
order by
    h.OrderDate desc

Was mache ich falsch?

War es hilfreich?

Lösung

das kleinere Datum hat die ersten sein

between  '2009-06-01' and '2009-06-16'

statt

between '2009-06-16' and '2009-06-01'

Auch vorsichtig sein, wenn zwischen der Verwendung, weil Sie die Mitternacht Wert vom größeren Datum und tut nichts anderes bekommen

Werfen Sie einen Blick auf Wie funktioniert zwischen Arbeit mit Daten in SQL Server?

Andere Tipps

Abfrage funktioniert nicht, weil in Ihrem Beispiel erstes Datum ist größer als die zweite Datum. Tauschen Sie die Termine. Zunächst muss kleiner sein als gleich zweites Datum.

Es ist schwer, Termine zu finden, die am Ende, bevor sie beginnen. Ändern Sie die min und max ...

h.OrderDate between '2009-06-01' and '2009-06-16'
select 
    * 
from
    OrderH h
where
        h.OrderDate between '2009-06-01' and '2009-06-16'
order by
    h.OrderDate desc

In MS-SQL-Server-Ereignissen geschehen nach 2009-06-16 um Mitternacht nicht aufgenommen werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top