Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2011, 11:43   #1
Evgen1503
Пользователь
 
Регистрация: 02.05.2009
Сообщений: 42
По умолчанию Извлечь часы из Time в SQL запросе

Есть ли возможность извлечь из поля типа Time часы, минуты в SQL запросе
Evgen1503 вне форума Ответить с цитированием
Старый 13.04.2011, 12:02   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Конечно есть в dateUtils есть функции типа HourOf(), MinuteOf().
передавай им fieldByName('мое поле с временем').AsdateTime
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.04.2011, 12:20   #3
Evgen1503
Пользователь
 
Регистрация: 02.05.2009
Сообщений: 42
По умолчанию

Это все понятно, задача состоит в другом мне нужно сделать группировку по часам
например:
Select FunctionHourOf(FieldTime)
From table
Group By FunctionHourOf(FieldTime)

где FunctionHourOf- какая то функция которая извлекала час, которое допустимо в SQL
Evgen1503 вне форума Ответить с цитированием
Старый 13.04.2011, 13:37   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Evgen1503
какая у Вас СУБД ?

дело в том, что в стандарте SQL нет (да и не должно быть) функций для работы с датой и временем.

если у Вас Oracle, то поможет что-то вроде
Код:
select extract(HOUR from YourDateFieldName) FROM YourTable ...
в других СУБД - по другому надо...

в MS SQL нужно использовать функцию DATEPART():
Код:
select  DATEPART(HOUR, YourDateFieldName) from YourTable

Последний раз редактировалось Serge_Bliznykov; 13.04.2011 в 13:47.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.04.2011, 14:04   #5
Evgen1503
Пользователь
 
Регистрация: 02.05.2009
Сообщений: 42
По умолчанию

СУБД Paradox
Evgen1503 вне форума Ответить с цитированием
Старый 13.04.2011, 14:50   #6
Evgen1503
Пользователь
 
Регистрация: 02.05.2009
Сообщений: 42
По умолчанию

вариант
Код:
select extract(HOUR from YourDateFieldName) FROM YourTable
прекрасно отрабатывает, большое спасибо
Evgen1503 вне форума Ответить с цитированием
Старый 13.04.2011, 16:25   #7
Evgen1503
Пользователь
 
Регистрация: 02.05.2009
Сообщений: 42
По умолчанию

К сожалению группировка по такому полю не поддерживается
Код:
select extract(HOUR from YourDateFieldName)
 FROM YourTable
GROUP BY 1
Evgen1503 вне форума Ответить с цитированием
Старый 13.04.2011, 16:40   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
К сожалению группировка по такому полю не поддерживается
сразу варианты.
1)
Код:
select extract(HOUR from YourDateFieldName)
 FROM YourTable
GROUP BY extract(HOUR from YourDateFieldName)
2) если есть вложенные запросы:
Код:
select MyHours from
( select extract(HOUR from YourDateFieldName) as MyHours
 FROM YourTable ) 
GROUP BY MyHours
или, почти тоже самое, только с алиасом внутреннего запроса
Код:
select AA.MyHours from
( select extract(HOUR from YourDateFieldName) as MyHours
 FROM YourTable ) AA
GROUP BY AA.MyHours

p.s. а зачем Вам этот "полутруп" ?
Неужели нельзя выбрать вместо Парадокса что-нибудь более современное?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.04.2011, 09:43   #9
Evgen1503
Пользователь
 
Регистрация: 02.05.2009
Сообщений: 42
По умолчанию

Цитата:
p.s. а зачем Вам этот "полутруп" ?
Неужели нельзя выбрать вместо Парадокса что-нибудь более современное?!
А что бы посоветовали? Что бы дешево и сердито.
Evgen1503 вне форума Ответить с цитированием
Старый 14.04.2011, 10:02   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

дешёво?
FireBird, MySQl, PostgreSQL, SQLite

да и MS SQL и Oracle имеют бесплатные редакции...

p.s. запрос то отработал?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
if в запросе sql serres PHP 2 28.05.2010 12:32
Ошибка в SQL запросе program123 БД в Delphi 11 06.12.2009 17:12
Переменные в запросе SQL Talemir БД в Delphi 2 22.08.2009 21:22
Ковычки в SQL запросе XPAiN БД в Delphi 13 22.02.2008 13:36
Ошибка в SQL запросе...!? KeyDok БД в Delphi 5 21.06.2007 09:19