Вопрос по sql, string – TSQL: дата и время из-за ошибки в символьной строке

0

Есть несколько сообщений, связанных с этим, но я настолько новичок в TSQL, что не могу их понять, поэтому прошу прощения.

Моя процедура имеет:

    BEGIN TRY

        INSERT INTO  dbo.myprocedure(
         Mydate

     )
     VALUES(
     CONVERT(DATETIME, @mydate, 102)
)

Если я выполню это так:

EXEC mydbo.dbo.myprocedure @mydate = 'May 8 2012 9:21AM'  

Я получаю эту ошибку: Преобразование не удалось при преобразовании даты и времени из символьной строки.

Как я могу решить это?

Бесконечно благодарен

Ваш Ответ

3   ответа
0

EXEC mydbo.dbo.myprocedure @mydate = '2012/05/08 09:21:00'  
1

документация для CONVERTВы увидите, что формат 102 является форматом ANSI, илиyyyy.mm.dd, Так что прохождение даты, как2012.05.08 должно сработать.

Это выглядит как2012.05.08 9:41 а также2012.05.08 9:41AM тоже будет работать, но это за пределами документированного формата.

Error: User Rate Limit Exceeded user523129
0

CONVERT(DATETIME, @mydate, 102) вCONVERT(DATETIME, @mydate, 100)

или простоCONVERT(DATETIME, @mydate)

ссылка наАКТЕРЫ и КОНВЕРТ а такжеhttp://www.sqlusa.com/bestpractices/datetimeconversion/ на MSDN

Похожие вопросы