1
私はTSQLクエリを作成して、予定の一覧から次に利用可能な日時を探します。これまでのところ、私は時間問合せのギャップを見つけましたが、夜間を除外する素晴らしい方法を見つけることはできません(午後7時以降)。夜間をTSQLクエリから除外する方法は?
;WITH CTE
AS ( SELECT
ID,StartAptDate,EndAptDate,
RowNumber = ROW_NUMBER() OVER(ORDER BY StartAptDate ASC)
FROM Appointments WHERE StylistId = 1 AND StartAptDate > CAST(CONVERT(CHAR(8), GetDate(), 112) AS DATETIME)
)
SELECT FirstApptAvail = min(a.EndAptDate)
FROM CTE a
INNER JOIN CTE b
ON a.RowNumber = b.RowNumber - 1
WHERE datediff(minute, a.EndAptDate, b.StartAptDate) >= 15 AND ...
...この
(a.StartAptDate < GETDATE @ 19:00と午前8時 @ a.StartAptDate> GETDATE + 1 )
ようなものになるだろうのために少しの擬似コード私が正しく得ることができない部分は、各比較の右側を構築することです。その夜の午後7時から翌朝の午前8時の間に返される可能性のあるものは除外する必要があります。
は、事前に迅速なフィードバックのための
([日付の値] '07:00:00'と'19:00:00 ')は使用できません。 – ComputerSaysNo
優秀!それは私がすでにこれを工夫しているように見えるでしょう:) –
または([DATETIME VALUE] :: time> = '07:00:00 'AND [DATETIME VALUE] :: time <= '19:00:00 ')、また、良いフィルタを得るために、日付の時間値の "time"を取得する必要があります[DATETIME VALUE] :: time – ComputerSaysNo