2

現在の日付から 1 か月を引いた日付のYEAR部分を取得するBIDS必要があります。expression

たとえば、 Today's date is は20/04/2012、次の式が返される目的の式です。

2012年

今日の日付が05/01/2012想定外の式である場合、次のように返されます。

2011年

4

3 に答える 3

1
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION YearRollOver 
(

    @dDateIn DATETIME
)
RETURNS DATETIME

AS

BEGIN

    declare @dDATEOut  DATETIME


    SELECT @dDATEOut = CAST(CAST(YEAR(@dDateIn)+1 AS varchar)+'/'+CAST(MONTH(@dDateIn) as varchar)+'/'+cast(DAY(@dDateIn) as varchar)  AS DATETIME)

    RETURN @dDATEOut

END
GO

この機能を試してください。インクリメントする日付を渡すだけで、YEARが1増加します。

満足している場合は、スレッドを閉じることを忘れないでください。

乾杯

マック

于 2012-04-20T10:23:01.530 に答える
1

したがって、ルールは次のとおりです。

  • 1月なら→去年に戻る
  • そうでなければ -> 今年は戻る

右?

=IIf(Datepart("m", Fields!date.Value)=1,Datepart("YYYY", Fields!date.Value)-1,Datepart("YYYY", Fields!date.Value))
于 2012-04-20T13:08:25.560 に答える
0

あなたが多くのことをしているのであれば、年、月、日をそれぞれ独自の変数に抽出する関数を作成します。年をインクリメントし、日付を文字列として再構築し、文字列を DATE としてキャストします。手が必要な場合はお知らせください。

マック

于 2012-04-20T09:58:27.173 に答える