Termine, die in den nächsten 24h stattfinden selektieren?!

yellowcity

Neuer Benutzer
Beiträge
2
Hallo zusammen,

bin neu hier und starte mal direkt mit meiner Frage (in etwas vereinfachter Form):
Ich arbeite mit C#, MSSQL und habe die Tabelle "Termine".
In der Tabelle "Termine" gibt es die Spalte "UhrzeitVon" vom Typ datetime.
"UhrzeitVon" ist die Start-Zeit eines Termins.

Ich möchte nun alle Datensätze selektieren, bei denen der Wert in "UhrzeitVon"
zwischen JETZT und JETZT+1 Tag liegt, also morgen bzw. eben in 24h.
-> hier komme ich nicht auf den korrekten SQL-Befehl

Das Ziel ist: Die Tabelle muss wohl stündlich geprüft werden und als Ergebnis müssen alle Termine angezeigt werden, die in den nächsten 24h stattfinden. Die Personen, die den jeweiligen Terminen zugewiesen sind, erhalten eine Terminbestätigung per E-Mail.

Bin noch relativ neu in der ganzen Thematik und komme leider nicht dahinter.
Habe evtl. auch den ein oder anderen Denkfehler in dem Zusammenhang..

Freue mich daher sehr über eure Hilfe.
Vielen Dank und schöne Grüße!
 
Werbung:
dafür gibt es je nach Datenbank Funktionen, die den aktuellen Timestamp liefern, und Operatoren, mit denen ich mit Timestamps rechnen kann, also z.B. X Stunden addieren. Demo mit PostgreSQL:

Code:
test=*# create table yellowcity (id serial primary key, ts timestamp);
CREATE TABLE
test=*# insert into yellowcity (ts) select now() + '1 hour'::interval;
INSERT 0 1
test=*# insert into yellowcity (ts) select now() + '13 hour'::interval;
INSERT 0 1
test=*# insert into yellowcity (ts) select now() + '33 hour'::interval;
INSERT 0 1
test=*# select * from yellowcity where ts between now() and now()+'1day'::interval;
 id |             ts             
----+----------------------------
  1 | 2019-08-22 14:08:28.137045
  2 | 2019-08-23 02:08:28.137045
(2 rows)

test=*#

Sollte recht ähnlich in M$SQL gehen.
 
Code:
SELECT * FROM Termine WHERE UhrzeitVon BETWEEN getdate() AND dateadd(day,1,getdate())
Vielleicht sollten noch Termine auftauchen, die gerade laufen...
Code:
SELECT *
FROM Termine
WHERE UhrzeitVon BETWEEN getdate() AND dateadd(day,1,getdate())
OR UhrzeitVon < getdate() AND UhrzeitBis > getdate()
MSSQL unterscheidet sich etwas von Postgres, TIMESTAMP als Spaltenformat hat hier z.B. eine ganz andere Funktion.
 
Werbung:
Letzteres ist sogar noch etwas "eleganter" zu lösen
Code:
SELECT *
FROM Termine
WHERE UhrzeitVon BETWEEN getdate() AND dateadd(day,1,getdate())
OR getdate() BETWEEN UhrzeitVon AND UhrzeitBis
 
Zurück
Oben