Как конвертировать string в date T-SQL?



Как я могу преобразовать строку в дату в T-SQL?



мой тестовый случай-это строка:'24.04.2012'

884   6  

6 ответов:

CONVERT(datetime, '24.04.2012', 104)

должен сделать трюк. Смотрите здесь для получения дополнительной информации: " приведение и преобразование (Transact-SQL)"

форматы даты Microsoft SQL

CONVERT(DateTime, DateField, 104)

вот решение, которое работает хорошо. Основное утверждение содержит в линию попробовать-разобрать:

SELECT TRY_PARSE('02/04/2016 10:52:00' AS datetime USING 'en-US') AS Result;

вот что мы реализовали в производственной версии:

UPDATE dbo.StagingInputReview
 SET ReviewedOn = 
     ISNULL(TRY_PARSE(RTrim(LTrim(ReviewedOnText)) AS datetime USING 'en-US'), getdate()),
 ModifiedOn = (getdate()), ModifiedBy = (suser_sname())
 -- Check for empty/null/'NULL' text
 WHERE not ReviewedOnText is null 
   AND RTrim(LTrim(ReviewedOnText))<>''
   AND Replace(RTrim(LTrim(ReviewedOnText)),'''','') <> 'NULL';

столбцы ModifiedOn и ModifiedBy предназначены только для внутреннего отслеживания базы данных.

см. Также эти ссылки Microsoft MSDN:

хотя преобразование вещь работает, вы на самом деле не должны использовать его. Вы должны спросить себя, почему вы анализируете строковые значения в SQL-Server. Если это одноразовое задание, в котором вы вручную фиксируете некоторые данные, вы не получите эти данные в другой раз, это нормально, но если какое-либо приложение использует это, вы должны что-то изменить. Лучшим способом было бы использовать тип данных "дата". Если это пользовательский ввод, это еще хуже. Затем вы должны сначала сделать некоторые проверки в клиенте. Если вы действительно хотите передайте строковые значения, где SQL-сервер ожидает дату, вы всегда можете использовать формат ISO ('YYYYMMDD'), и он должен автоматически преобразовываться.

вы можете использовать:

SELECT CONVERT(datetime, '24.04.2012', 103) AS Date

ссылка: приведение и преобразование (Transact-SQL)

CONVERT(DateTime, ExpireDate, 121) AS ExpireDate

будет делать то, что нужно, результат:

2012-04-24 00:00:00.000

Comments

    Ничего не найдено.