Удалить нули с помощью SQL Server - PullRequest
0 голосов
/ 12 ноября 2018

Здравствуйте, я использую SQL Server и у меня есть этот столбец:

data
6/19/2019 3:10:12 PM
12/23/2016 5:02:15 AM

Я хотел извлечь только время, поэтому использовал следующий запрос:

select try_parse([data] as time using 'en-US') from Table_1

Но проблема в том, что я получаю в результате это:

15:10:12.0000000
05:02:15.0000000

Все в порядке, кроме 0, я хочу получить:

15:10:12
05:02:15

Большое спасибо за помощь!

Ответы [ 4 ]

0 голосов
/ 17 декабря 2018

Вы можете извлечь время, используя запрос ниже

SELECT CONVERT(VARCHAR(8), cast('12/23/2016 5:02:15 AM' as time),108)

Выход - 05:02:15. Я могу надеяться, что этот запрос / ответ говорит сам за себя.

0 голосов
/ 12 ноября 2018

Вы можете использовать TIME() с правильной шкалой для получения желаемых результатов.

select Convert(time(0) , Data ) as time from Table_1

time(0) означает шкалу 0, которая имеет точность 8. В результате получается HH:MM:SS. Использование другой шкалы, например 1, даст вам одну цифру за долю секунды. Вы можете прочитать все шкалы в MS Docs

0 голосов
/ 13 ноября 2018

Попробуйте это

select CONVERT(varchar(8),  data, 108) from Table_1

, который показывает только время (17:00:59), но вы можете добавить + между ними, если вы хотите, чтобы дата в полном формате была в формате дд / мм / гггг чч: мм: сс

select CONVERT(varchar(10), data, 101) + ' ' + CONVERT(varchar(8), data, 108) from Table_1

Они будут работать, если данные используют тип DATETIME

0 голосов
/ 12 ноября 2018
Declare @data varchar(28)='12/23/2016 5:02:15 AM'

select Convert(varchar(20),Cast(@data as time),24)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...