SSRS 2008 правильно отображает тип даты - PullRequest
0 голосов
/ 16 июня 2009

Я использую SQL 2008 и SSRS 2008:

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 для заполнения @StartDate и @EndDate в отчете SSRS. Проблема возникает при отображении FullDate в раскрывающемся списке для параметра, он не отображается как дата, он отображается как дата и время и добавляет 12:00:00 AM в каждую строку.

Есть идеи, почему или как мы можем это остановить?

Спасибо

- Aaron

Ответы [ 2 ]

1 голос
/ 16 июня 2009

, поскольку он является объектом даты и времени, вам нужно либо выполнить разбиение поля (Split(field, " ")(0)), либо использовать DateFormat и предоставить нужную строку формата (=FormatDateTime(today, dateformat.shortdate))

Это предназначено для отчета, а не для sql.

Или установите для свойства формата в текстовом поле значение "d", которое указывает короткую дату и время

0 голосов
/ 23 июля 2010

Я чувствую, что это ошибка. Я тоже расстроен этим. В базе данных столбец четко определен как «ДАТА», а когда вы создаете набор данных в SSRS, он представляется как «DATETIME». Это полная чушь ... Почему они не могут уважать свои собственные типы данных между своими продуктами. Я не хочу делать какие-либо причудливые преобразования для чего-то, что было определено его типом в базе данных.

Я надеялся, что они исправят это в R2, но мечтайте дальше. (

...