Форматировать строку как дату в SQL? - PullRequest
0 голосов
/ 01 февраля 2012

У меня есть этот сохраненный Proc:

ALTER Procedure [dbo].[GetWebinars]
(
    @GroupingCode varchar(max) = 'AVM',
    @ItemNumber varchar(max) out,
    @Title varchar(max) out,
    @SubTitle varchar(max) out,
    @ShortDescription varchar(max) out,
    @LongDescription varchar(max) out,
    @ShortImageUrl varchar(max) out,
    @MedImageUrl varchar(max) out,
    @LgImageUrl varchar(max) out,
    @GroupCode varchar(max) out,
    @StartDate varchar(max) out
)
AS
    select 
    @GroupingCode = prdtemp.groupingcode,
    @ItemNumber = prd.itemnumber,    
    @Title = t.brochuredesc,
    @SubTitle = prdtemp.SubTitle,
    @ShortDescription = prdtemp.shortdescription,
    @LongDescription = prdtemp.longdescription,
    @ShortImageUrl = prdtemp.SmallImagePath,
    @MedImageUrl  = prdtemp.MediumImagePath,
    @LgImageUrl = prdtemp.LargeImagePath,
    @GroupCode = prd.GroupCode,
    @StartDate = s.StartDate

    from pryor_producttemplate prdtemp
        inner join pryor_prdItmmst prd
        on prdtemp.groupingcode  = prd.groupcode
        inner join pryor_topics t
        on prd.itemnumber =  t.topiccode
        inner join Pryor_Schedule s
        on t.TopicCode = s.topiccode    

    where prdtemp.groupingcode=@GroupingCode and t.country = 'U.S.A'

Моя проблема в том, что @StartDate - это переменная типа char в БД. Как я могу преобразовать это в правильную дату, чтобы представить как D / M / YY?

1 Ответ

0 голосов
/ 01 февраля 2012

Вы используете функцию convert для преобразования строки в дату и время:

@StartDate = convert(datetime, s.StartDate, 120)

Третий параметр указывает формат даты.Например, значение 120 указывает удобный для человека формат ISO 8601.См. Ссылку для CAST и CONVERT для всех поддерживаемых форматов даты.

Естественно, вам также необходимо изменить тип переменной:

@StartDate datetime out
...