1

前四半期の最終日を取得するにはどうすればよいですか?

Select DateAdd(day, -1, dateadd(qq, DateDiff(qq, 0, @Date), 0))

この SQL スクリプトを見つけましたが、うまくいきません。

4

2 に答える 2

2

Unix-Timeに必要な「0」を計算できないため、スクリプトは Sybase では機能しません。

例えば:

DECLARE @LastDay datetime
SELECT @LastDay = DATEADD(dd, -1, DATEADD(qq, DATEDIFF(qq, '01.01.1970', GETDATE()), '01.01.1970'))
SELECT @LastDay

今日 (2013 年 11 月 7 日) これは次のように出力されます。

30.09.2013 00:00:00

サーバーがどのように構成されているかによって、日付形式が変わる可能性があります。

時間が必要ない場合は、データ型をに変更する必要があり@LastDayますdate

于 2013-11-07T14:00:35.320 に答える
0

プロジェクトで利用する関数を作成しました

CREATE FUNCTION preQtr
(@pQtr DATE)
RETURNS Date
AS

BEGIN
DECLARE @OUTPUT DATE

SET @OUTPUT = (select DATEADD(D, -1, DATEADD(qq, DATEDIFF(qq, 0,@pQtr), 0)))
RETURN @OUTPUT
END

select dbo.preQtr('2016-06-30')
select dbo.preQtr('2016-03-31')

また、次のように使用すると日時を取得できます。ここに画像の説明を入力

select DATEADD(s, -1, DATEADD(qq, DATEDIFF(qq, 0,'2016-03-31'), 0)) As PreviousQuarterLastdayTime
select DATEADD(s, -1, DATEADD(qq, DATEDIFF(qq, 0,'2016-03-31'), +1)) As QuarterFirstdayTime
于 2017-01-07T12:08:50.223 に答える