Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вычленить время из 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 не работает? Подскажите, кто разбирался, а то уже голову сломал себе... :(


Наверх

Титульная страница Поиск, карта сайта Написать письмо