Конвертировать nvarchar в datetime - формат 19/02/2019 12.00.00 AM - PullRequest
0 голосов
/ 18 июня 2019

Я хочу преобразовать формат 19/02/2019 12.00.00 AM в дату и время в хранимой процедуре SQL Sercver 2012.

Я пытался

select cast('19/02/2019 12.00.00 AM' as datetime)

и

select convert(datetime, '19/02/2019 12.00.00 AM', 108)

, но этоне работает

Ответы [ 3 ]

2 голосов
/ 18 июня 2019

Сначала нужно заменить "."с ":", потому что никакой формат времени SQL Server не работает с ".".Затем вам нужно использовать правильный формат, 108 - это формат только для времени, 103 - это то, что вы ищете.

select convert(datetime, replace('19/02/2019 12.00.00 AM', '.', ':'), 103)

Ссылка

0 голосов
/ 18 июня 2019

Попробуйте это заменить (.) На (:)

SELECT convert(datetime,REPLACE('19/02/2019 12.00.00 AM','.',':'),    103) 
0 голосов
/ 18 июня 2019

Вы должны иметь литерал VARCHAR в правильном формате.Как предлагают другие ответы, вы можете пойти на замену.Я бы предпочел представлять нижеуказанным способом, так как это более понятно.Нижеследующее работает:

Select convert(datetime, '19/02/2019 12:00:00 AM', 103)

Я предлагаю вам следовать стандарту ISO 8601 для литералов даты и времени.Он позаботится о том, чтобы представлять дату и время одинаково, независимо от локали.Подробнее о datetime datetype .Я помещаю содержание о ISO 8601 ниже для вашей справки.

ISO 8601 Описание ГГГГ-ММ-ДДЧч: мм: сс [.ммм]

ГГГГММДД [чч: мм: сс [.ммм]] Примеры:

1) 2004-05-23T14: 25: 10

2) 2004-05-23T14: 25: 10.487

Чтобы использовать формат ISO 8601, необходимо указать каждый элемент в форматевключая T, двоеточия (:) и точку (.), показанные в формате.

Скобки указывают, что дробь второго компонента является необязательной.Компонент времени указывается в 24-часовом формате.

T указывает начало части времени значения datetime.

Преимущество использования формата ISO 8601 состоит в том, что онмеждународный стандарт с однозначной спецификацией.Кроме того, на этот формат не влияют настройки SET DATEFORMAT или SET LANGUAGE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...