У меня есть ниже строка даты и времени

2017-09-06 00:36:32.473491+05:30

Я хочу сохранить это время в таблице MS SQL Server, и мой тип данных для этого столбца datetime.

Я пытался CAST, но это дает мне следующую ошибку Ошибка преобразования при преобразовании даты и / или времени из строки символов. Поэтому, пожалуйста, помогите мне исправить это. Я использую MS SQL Server 2014

0
user3441151 24 Окт 2017 в 16:47

3 ответа

Лучший ответ

Вот супер простая альтернатива ...

SELECT CAST(left('2017-09-06 00:36:32.473491+05:30',19) as datetime)
0
calamities 25 Окт 2017 в 01:32

Вам нужно вырезать миллисекунды и смещение времени, прежде чем вы сможете CAST - DATETIME.

DECLARE @s NVARCHAR(100) = '2017-09-06 00:36:32.473491+05:30'
SELECT CONVERT(NVARCHAR(19), @s, 121)
SELECT CAST(CONVERT(NVARCHAR(19), @s, 121) AS DATETIME)

Однако, если ваш тип данных был DATETIME2, вам не нужно

DECLARE @s NVARCHAR(100) = '2017-09-06 00:36:32.473491+05:30' SELECT
CONVERT(NVARCHAR(25), @s, 121) SELECT CAST(CONVERT(NVARCHAR(25), @s,
121) AS DATETIME2)
1
Mazhar 24 Окт 2017 в 13:55

Попробуйте этот CONVERT (DATETIME, '2017-09-06 00: 36: 32.473') выполняет свою работу, но не с вашей точностью!

0
Hamed 24 Окт 2017 в 13:58