Отдельное время из таблицы SQL - PullRequest
1 голос
/ 14 декабря 2011

У меня есть таблица Процессы, состоящие из поля даты и времени.

Процессы (Id как int, RunDate как DateTime) Мне нужно запустить Distinct by RunDate как время без секунд

For Example

ID        RunDate 
1         2011-12-13 12:36:26.483
2         2011-12-12 12:37:22.421
3         2011-12-11 12:36:44.421

Мне нужно получить в выводе

Output
12:01
12:03

Для того, чтобы получить его я использую следующий SQL, и он работает

SELECT DISTINCT DATENAME(hour, RunDateTime) + ':' + 
DATENAME(mi, RunDateTime) AS  d
from Proccesses 

Проблема в том, что если минут меньше, чем 10, например, 8 я получаюодна цифра "8", и я хочу получить две цифры 08

Например, я получаю 12: 8 , и мне нужно получить 12: 08

Ответы [ 3 ]

1 голос
/ 14 декабря 2011

1001 * попробовать *

SELECT DISTINCT 
RIGHT ('00' + CAST(DATENAME(hour, RunDateTime) AS VARCHAR(2)), 2) + ':' +
RIGHT ('00' + CAST(DATENAME(mi, RunDateTime) AS VARCHAR(2)), 2)
from Proccesses 

В качестве альтернативы вы можете использовать CONVERT и соответственно обрабатывать строковый результат ...

РЕДАКТИРОВАТЬ: пожалуйста, подтвердите ответ от Джо Стефанелли , если в конечном итоге вы используете опцию CONVERT.

0 голосов
/ 14 декабря 2011
SELECT RIGHT(CONVERT(VARCHAR,RunDateTime),7)

Вы можете лишить AM / PM, если хотите.

0 голосов
/ 14 декабря 2011

CONVERT стиль 108 вернет чч: мм: сс. Использование CHAR (5) для типа данных вернет только часть чч: мм.

SELECT DISTINCT CONVERT(CHAR(5), RunDateTime, 108) AS d
    FROM Processes
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...