2009-07-16 8 views
38

Это не спрашивает, как преобразовать произвольную строку в datetime в MSSQL, такую ​​как this question.SQL Server конвертировать строку в datetime

Я могу управлять строковым форматом, но я хочу знать, что такое синтаксис MSSQL для обновления поля datetime с использованием строки даты.

ответ

17

Например, вы можете использовать

update tablename set datetimefield='19980223 14:23:05' 
update tablename set datetimefield='02/23/1998 14:23:05' 
update tablename set datetimefield='1998-12-23 14:23:05' 
update tablename set datetimefield='23 February 1998 14:23:05' 
update tablename set datetimefield='1998-02-23T14:23:05' 

Вы должны быть осторожными в день/месяц для того, так как это будет зависит от языка, когда год не указан первым. Если вы укажете год первым, тогда проблем не будет; дата заказа всегда будет год-месяц-день.

+3

+1 для YYYY-MM-ДД :) – Thorarin

+5

- 1. Первый год не гарантирует y-m-d. SET LANGUAGE british GO SELECT CAST ('2009-02-28' AS datetime), CAST ('2009-02-28 01:02:03' AS datetime) - сбой – gbn

+2

Вы должны использовать «дату» и SQL Server 2008 до yyyy-mm-dd работает. – gbn

97
UPDATE MyTable SET MyDate = CONVERT(datetime, '2009/07/16 08:28:01', 120) 

Для полного обсуждения CAST и CONVERT, включая различные варианты форматирования даты см MSDN Library Ссылка ниже:

https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql

+1

+1 для ссылки. Очень полезно. –

+1

+1 для ответа на вопрос, который я искал, хотя это был не вопрос OP :) – Kalessin

Смежные вопросы