2009-06-16 65 views
0

我使用SQL 2008和2008 SSRS:SSRS 2008顯示日期Datetype正確

CREATE TABLE [dbo].[DimDates](
    [pkDateID] [int] NOT NULL, 
    [FullDate] [date] NULL, 
    [DayNumberOfWeek] [tinyint] NULL, 
    [DayNameOfWeek] [varchar](9) NULL, 
    [IsLastDayOfMonth] [char](1) NULL, 
    [MonthName] [varchar](9) NULL, 
    [CalendarDay] [smallint] NULL, 
    [CalendarWeek] [tinyint] NULL, 
    [CalendarMonth] [tinyint] NULL, 
    [CalendarQuarter] [tinyint] NULL, 
    [CalendarYear] [smallint] NULL, 
    [FiscalDay] [smallint] NULL, 
    [FiscalWeek] [tinyint] NULL, 
    [FiscalMonth] [tinyint] NULL, 
    [FiscalQuarter] [tinyint] NULL, 
    [FiscalYear] [smallint] NULL, 
) 
GO 

CREATE PROCEDURE [dbo].[LookupWeek] 
    @StartDateID int = NULL 
AS 
    IF @StartDateID IS NULL 
     SELECT 
      dd.pkDateID 
      , dd.FullDate 
     FROM 
      dbo.DimDates dd 
     WHERE 
      dd.DayNumberOfWeek = 7 
      AND dd.FullDate <= GETDATE() 
     ORDER BY 
      dd.pkDateID DESC 
    ELSE 
     SELECT 
      dd.pkDateID 
      , dd.FullDate 
     FROM 
      dbo.DimDates dd 
     WHERE 
      dd.DayNumberOfWeek = 7 
      AND dd.pkDateID >= @StartDateID 
      AND dd.FullDate <= GETDATE() 
     ORDER BY 
      dd.pkDateID DESC 
RETURN 0 
GO 

我們利用SP以上在SSRS報告填寫兩個@StartDate和@EndDate。在參數的下拉框中顯示FullDate時會出現問題,它不顯示爲日期,它顯示爲日期時間並將12:00:00 AM添加到每一行。

任何想法爲什麼或如何阻止它?

感謝,

--Aaron

回答

1

,因爲它是一個DateTime對象,你要麼需要做的領域(Split(field, " ")(0))拆分或使用日期格式,並提供所需的格式字符串(=FormatDateTime(today, dateformat.shortdate)

這是設計在報告中,而不是sql。

或設置文本框格式屬性設置爲「d」,表示短日期時間

0

我覺得這是一個錯誤。我也對此感到沮喪。在數據庫中,該列被明確定義爲「DATE」,並且當您在SSRS內創建數據集時,它將被表示爲「DATETIME」。這是完整的公牛....爲什麼他們不能尊重他們自己的產品之間的數據類型。我不想對數據庫中定義的類型進行重新格式化。

我希望他們在R2中解決它,但是,夢想。 :(