0

最終日の 23:00 に 1 日が始まる要件に取り組んでいます。SQL関数に渡された日付の開始日時を取得する必要があります。カスタムの開始時刻 (つまり 23:00) とoffset = -1(前日開始を意味する) をテーブルに保存しています。
たとえば、私が合格した場合:

  1. 10/30/2013 22:00それは戻るべきです10/29/2013 23:00
  2. 10/30/2013 23:20それは戻るべきです10/30/2013 23:00
  3. 10/31/2013 01:00それは戻るべきです10/30/2013 23:00

現在、次のステートメントを使用しています:(DayStartOffset = -1 and DayStartTime = 23:00:00)

    declare @datetime datetime 
    set @datetime = '2013-10-30 23:59:59'
    declare @date date
    declare @time time(3)
    set @date = @datetime
    set @time = @datetime
    declare @dayStartDateTime datetime 

    --DayStartOffset is set to -1
    --DayStartTime set to '23:00'
    SELECT @dayStartDateTime = DATEADD(dd,DayStartOffset,CAST(@date AS DATETIME)) +                 CAST(DayStartTime AS DATETIME)
     from table_name
     print @dayStartDateTime

しかし、上記の 1 と 3 などでは正しく動作しません。

この機能について教えてください。

4

1 に答える 1