Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как получить время без секунд?  [new]
Ольга Корн
Member

Откуда: Ростов-на-Дону
Сообщений: 33
Есть запрос, в одном из полей исходной таблице содержутся данные типа "время", как их вывести на экран без секунд, то есть в формате hh:mm? Получать отдельно часы и минуты не хочется, так как потом придется клеять в случае чего, ведущий ноль. Есть ли другой способ?
25 сен 09, 20:05    [7710446]     Ответить | Цитировать Сообщить модератору
 Re: Как получить время без секунд?  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Выводом данных на экран занимается клиентское приложение
MS SQL Server не имеет отношения к экранам на клиентских компьютерах
25 сен 09, 20:07    [7710450]     Ответить | Цитировать Сообщить модератору
 Re: Как получить время без секунд?  [new]
Ольга Корн
Member

Откуда: Ростов-на-Дону
Сообщений: 33
Паганель, а что, использовать в этом случае функцию типа convert нельзя прямо в запросе, который формируется в хранимой процедуре, которая хранится на сервере? Этот подход неправильный? например, я так дату преобразую, в удобный мне формат...
25 сен 09, 20:11    [7710461]     Ответить | Цитировать Сообщить модератору
 Re: Как получить время без секунд?  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Ольга Корн
Этот подход неправильный?
Мнений может быть много
Мое мнение - этот подход неправильный
1) Сервер занимается не своей работой
2) Сервер передает клиенту данные не того типа (то есть строка на самом деле не строка а время)
3) Труднее реализовать вывод данных разным клиентам в разных форматах
25 сен 09, 20:18    [7710478]     Ответить | Цитировать Сообщить модератору
 Re: Как получить время без секунд?  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
ну и какой тип данных из этой даты потом получается ? а что с локализацией.

Форматом данных занимается клиентское приложение, если уж так хочется то
SELECT DATEADD(DAY,0,DATEDIFF(DAY,0,GETDATE()))
25 сен 09, 20:19    [7710481]     Ответить | Цитировать Сообщить модератору
 Re: Как получить время без секунд?  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Ольга Корн
Есть запрос, в одном из полей исходной таблице содержутся данные типа "время", как их вывести на экран без секунд, то есть в формате hh:mm? Получать отдельно часы и минуты не хочется, так как потом придется клеять в случае чего, ведущий ноль. Есть ли другой способ?
Означает ли это, что у Вас SQL2008 и тип данных - TIME? Тогда
DECLARE @T TIME=CAST(GETDATE() AS TIME);
SELECT CAST(@T AS CHAR(5));
Если тип поля всё-таки DATETIME, то
SELECT CONVERT(CHAR(5), GETDATE(), 108);
25 сен 09, 20:35    [7710504]     Ответить | Цитировать Сообщить модератору
 Re: Как получить время без секунд?  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
iap
DECLARE @T TIME=CAST(GETDATE() AS TIME);
SELECT CAST(@T AS CHAR(5));
Или даже короче (неявное преобразование типа)
DECLARE @T TIME=CAST(GETDATE() AS TIME);
SELECT LEFT(@T,5);
25 сен 09, 20:38    [7710510]     Ответить | Цитировать Сообщить модератору
 Re: Как получить время без секунд?  [new]
kornyukova_o
Guest
iap,
Огромное спасибо! Всё заработало.
25 сен 09, 23:04    [7710749]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить