2

BIDS我需要一个日期expressionYEAR部分,它是当前日期的负 1 个月。

例如今天的日期是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

所以规则是:

  • 如果是一月 -> 去年返回
  • else -> 今年返回

对?

=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 回答