Access-o-Mania

Datenbanken => MS SQL-Server => Thema gestartet von: MrMojoRisin am August 28, 2017, 11:15:53

Titel: Datetime aktuelles Datum, aber Uhrzeit selbst setzen aus Tabelle
Beitrag von: MrMojoRisin am August 28, 2017, 11:15:53
Hallo,

ich habe das Problem, dass ich das aktuelle Datum mit getdate() auslese. So, dann habe ich eine Tabelle mit verschiedenen Zeiten hinterlegt. Diese sind vom Datentyp time.

Jetzt such ich mir den passenden Datensatz raus. Dort hab ich einer Spalte den Beginn und in einer zweiten das Ende.

Jetzt müsste ich wissen, liegen wir gerade vor oder nach der Zeit Beginn und Ende.

Ganz einfach mal am Beispiel:

Jetzt ist sagen wir ich lese mit getdate() folgendes aus:

28.08.2017 08:43

In meiner Tabelle steht eine Anfangszeit von 9:30 und eine Endzeit von 10:00.

Ich muss jetzt wissen, lieg ich vor 9:30, nach 10. Das reicht mir.

Ich kann das jetzt schon zusammenbasteln mit einer längeren Abfrage, aber gibts da nicht was einfaches.

Prinzpiell hätte ich das so gelöst, aber es ist halt so lange :)

DATEADD(MINUTE,(SELECT DATEPART(MINUTE,LM_PZ_Pausenbeginn) FROM tbl_Pausenzeiten WHERE LM_PZ_StationID = 1 AND LM_PZ_SchichtID = 1),(DATEADD(HOUR,(SELECT DATEPART(HOUR,LM_PZ_Pausenbeginn) FROM tbl_Pausenzeiten WHERE LM_PZ_StationID = 1 AND LM_PZ_SchichtID = 1), CONVERT(DATETIME, CONVERT(CHAR(10), getdate(), 104)))))
Dank euch schon mal
Titel: Re: Datetime aktuelles Datum, aber Uhrzeit selbst setzen aus Tabelle
Beitrag von: Beaker s.a. am August 28, 2017, 11:50:53
Ohne zu wissen, was weiter passieren soll
If getdate()-int(getdate()) < Anfang Then
    'Angangszeit noch nicht erreicht
ElseIf getdate()-int(getdate()) > Ende Then
    'Endzeit überschritten
Else
    'im Zeitplan
End If
Titel: Re: Datetime aktuelles Datum, aber Uhrzeit selbst setzen aus Tabelle
Beitrag von: PhilS am August 28, 2017, 15:43:23
Auf die Schnelle mal folgender Vorschlag:
SELECT
CASE WHEN convert(time,getdate()) < LM_PZ_Pausenbeginn
THEN 'Vor Pausenbegin'
ELSE 'Nach Pausenbegin'
END
 FROM tbl_Pausenzeiten
 WHERE ...