SQL-запрос - откат даты только - PullRequest
0 голосов
/ 05 июля 2018

Я думал, что это будет простая команда для достижения, очевидно, я что-то упустил в процессе. У меня есть SQL Server 2012. У меня есть таблица с именем Messages, в которой есть столбец MessageTime. В этом столбце хранятся дата и время в следующем формате

DD-MM-YYYY - 00:00:00

Я хочу извлечь первые 10 символов, чтобы они были в отдельном столбце, чтобы я мог сгруппировать их далее по запросу. Но следующая команда по-прежнему не работает, какой синтаксис мне здесь не хватает.

SELECT CONVERT(varchar(10), MessageIdTime, 101) 

Где MessageIdTime - имя столбца ....

Спасибо SW

Ответы [ 3 ]

0 голосов
/ 05 июля 2018

Я бы порекомендовал извлечь его как дату:

select try_convert(date, left(MessageIdTime, 10)) as MessageIdDate

На самом деле вы должны изменить свой столбец, чтобы он содержал тип даты / времени вместо строки.

Дата может быть настолько полезной, что вы можете добавить ее в таблицу:

alter table t as MessageIdDate as ( try_convert(date, left(MessageIdTime, 10)) );
0 голосов
/ 05 июля 2018

Вы можете использовать left() функцию:

SELECT CAST(LEFT(MessageIdTime, 10) AS DATE)
0 голосов
/ 05 июля 2018
SELECT SUBSTRING(MessageIdTime, 1, 10)
...