Wie kann ich das datesintervall in SQL server speichern und validieren?

Ich möchte einen datesintervallwert für eine gegebene Tabelle speichern, sagen wir, dass das Startdatum am 1. Juli 2016 liegt und das Enddatum am 30. Juni 2017 liegt. Der einfachste path wäre, den Wert so einzustellen, wie er ist (in SQL server der datetime value 1. Juli 2016 ist als 01/07/2016 00:00:00 gespeichert). Dann, wenn ich validieren möchte, ob ein bestimmtes date innerhalb des Bereichs dieses Intervalls liegt, würde ich einfach die BETWEEN-Klausel verwenden, zum Beispiel:

WHERE this_date BETWEEN start_date AND end_date 

Wenn dieses_date jedoch auf einen Wert 30/06/2017 10:00:00 gesetzt ist, wird die obige statement false zurückgeben. Um dies zu bewältigen, stelle ich mir vor, ich würde die WHERE-Klausel dazu ändern:

 WHERE this_date BETWEEN start_date AND dateadd(ss, -1, datead(dd,1,end_date)) 

Auf diese Weise wird der end_date-Wert auf 30/06/2017 23:59:59 gesetzt und die SQL-Klausel würde true zurückgeben.

Ein weiterer path, um damit umzugehen ist, nur den end_date Wert zu speichern, der die Taktart enthält, dh 30/06/2017 23:59:59. Auf diese Weise muss die WHERE-Klausel nicht geändert werden und die Aussage würde wahr werden.

Ich bin auf den zweiten Ansatz gelehnt, möchte aber deine Meinung hören. Würden Sie sagen, der zweite Ansatz ist natürlicher? Gibt es Fälle, in denen das nicht günstig wäre? Gibt es einen besseren path, um das datesintervall zu validieren, wenn ich den ersten Ansatz verwende?

Ihre Meinung ist sehr geschätzt!

Sie müssen die gespeicherte Prozedur verwenden, um Ihre Bedürfnisse wie folgt zu erfüllen:

 if(date>thisdate) your query here; else another query here; 

gegebene Logik;