![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вычленить время из TIMESTAMP (Oracle) [D5]
Flagman © (2007-01-31 06:03:00)Народ, кто-нибудь занимался сабжем?
Конкретизируя вопрос: есть список записей с полями Date типа TimeStamp и Summa типа Number. Требуется найти сумму всех полей Summa, где время в Date удовлетворяет с 7:00 по 22:00, притом, что даты разные (грубо говоря, в списке продаж за месяц нужно сравнить дневную и ночную выручку).
Trunc, Round не подходят, т.к. не обрезают дату, Extract вроде должен подходить судя по мануалам, а в реале - год, месяц, день вытаскивает, а час, минуту, секунду - нет...
Подскажите, может я что неправильно понял...
Desdechado (2007-01-31 11:31:00) [1]> полями Date типа TimeStamp
Так DATE или TIMESTAMP ? Это разные типы данных в Оракле.
> DBA Studio тип поля отображается не как TimeStamp, а как Date...
> Но в нем содержится и дата и время.
Мануал по Ораклу не судьба почитать? Тип DATE содержит и время тоже.
ЗЫ Ты не путай дельфийский тип поля с оракловым. Это разные понятия и очень сильно зависят от применяемых технологий доступа к данным.
Кщд (2007-01-31 10:53:00) [2]Sergey13 © (31.01.07 08:35) [4]
это не пройдет, если datefield timestamp
petvv (2007-01-31 10:53:00) [3]Ну, если задавать програмно и если запрос гиморный то можно посмотреть в сторону DecodeDate, EncodeDate, DecodeTime, EncodeTime
Кщд (2007-01-31 10:50:00) [4]Flagman © (31.01.07 10:26) [5]
в 8-ке разве есть тип поля timestamp?
Flagman (2007-01-31 10:26:00) [5]2 Sergey13:
select * from table
where datefield-trunc(datefield,'DD') between 7/24 and 22/24
работает, спасибо.
2 Кщд:
select extract(hour from systimestamp), extract(minute from systimestamp), extract(second from systimestamp) from dual - ругается на неверное имя столбца. Если systimestamp заменить на sysdate, то ругается на "недопустимое поле для выборки"... а дни, месяцы, годы выбирает нормально.
Sergey13 (2007-01-31 08:35:00) [6]select * from table
where datefield-trunc(datefield,'DD') between 7/24 and 22/24
Кщд (2007-01-31 07:48:00) [7]Вдогонку...
ради интереса, что возвращает: select extract(hour from systimestamp), extract(minute from systimestamp), extract(second from systimestamp) from dual
Кщд (2007-01-31 07:12:00) [8]select to_char(systimestamp, 'HH24:MI:SS') from dual
select sysdate - trunc(sysdate) from dual
select systimestamp - trunc(systimestamp) from dual
Flagman (2007-01-31 06:52:00) [9]Вдогонку... Oracle 8.1.6. И в DBA Studio тип поля отображается не как TimeStamp, а как Date... Но в нем содержится и дата и время. Может Extract для 8.1.6 не работает? Подскажите, кто разбирался, а то уже голову сломал себе... :(