powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / временной промежуток
49 сообщений из 49, показаны все 2 страниц
временной промежуток
    #36363280
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго здоровица всем
ситуация такая
необходимо вывести все записи которые находятся сначала 8:00 до 20:00 пока системное время находится в этом промежутке, а затем с 20:00 до 8:00 пока системное время находится в этом промежутке
пишу так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select "P_ID", 
"P_EKG",
"P_KOD",
"P_S",
"P_DO"
from "#OWNER#"."PROSTOI_EKG" 
where trunc("P_S") > trunc( 8 : 00 ) and trunc("P_S")  < trunc( 20 : 00 )
or
trunc("P_S") > trunc( 20 : 00 ) and trunc("P_S")  < trunc( 8 : 00 )
а он мне ORA-00907: missing right parenthesis
как быть?
Спасибо огоромное
...
Рейтинг: 0 / 0
временной промежуток
    #36363309
xymbo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sagit,

Почитайте про то, какие форматы времени необходимо Вам использовать. А затем еще разберитесь, как у Вас будут работать условия в WHERE.
Почитайте доку TRUNC , Datetime Format Models
...
Рейтинг: 0 / 0
временной промежуток
    #36363316
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xymboSagit,

Почитайте про то, какие форматы времени необходимо Вам использовать. А затем еще разберитесь, как у Вас будут работать условия в WHERE.
Почитайте доку TRUNC , Datetime Format Models
спасибо
подскажите как вводить только время без даты, а выводить и время и дату
...
Рейтинг: 0 / 0
временной промежуток
    #36363337
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sagit
спасибо
подскажите как вводить только время без даты, а выводить и время и дату
в апексе есть такая штука как календарная строка
там сразу можно с датой время ставить вопрос такой а как без даты это делать
...
Рейтинг: 0 / 0
временной промежуток
    #36363345
xymbo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SagitxymboSagit,

Почитайте про то, какие форматы времени необходимо Вам использовать. А затем еще разберитесь, как у Вас будут работать условия в WHERE.
Почитайте доку TRUNC , Datetime Format Models
спасибо
подскажите как вводить только время без даты, а выводить и время и дату
Куда вводить, и куда выводить?
...
Рейтинг: 0 / 0
временной промежуток
    #36363355
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня идет веб форма на апексе
с полями
с -- поле начало работы
до -- поле конца работы
в регионе рапорт имеется кнопка создать
и область ввывода данных
там где поле с и поле до стоит 13-12-09 14:41 и вводится оно так же в поле с, после нажатия кнопки создать, как нажимается синенькая кнопка выходит календарь и там ставиться дата и время.
Мне надо что бы ставилось только время а в поле просмотра данных отображалось все и дата и время
второе работает дата и время отображается, а вот ставиться тоже и дата и время, как сделать так что бы вводилось только время
СПАСИБО!!1
...
Рейтинг: 0 / 0
временной промежуток
    #36363362
xymbo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sagit,

Давайте так:
1) составьте набор тестовых данных, опубликуйте его здесь.
2) покажите результат, который Вы хотите получить.

Например так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
WITH t AS (
     SELECT  1  ID, to_date('01.12.2009 08:01', 'dd.mm.yyyy hh24:mi') dt FROM dual UNION ALL
     SELECT  2  ID, to_date('01.12.2009 16:31', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  3  ID, to_date('03.12.2009 19:20', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  4  ID, to_date('02.12.2009 20:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  5  ID, to_date('01.12.2009 21:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  6  ID, to_date('01.12.2009 02:01', 'dd.mm.yyyy hh24:mi') FROM dual)
SELECT t.* FROM t     
WHERE t.dt BETWEEN to_date('08:00', 'hh24:mi') AND to_date('20:00', 'hh24:mi');
Здесь t - тестовая табличка, и в результате выполнения запроса
Код: plaintext
1.
SELECT t.* FROM t     
WHERE t.dt BETWEEN to_date('08:00', 'hh24:mi') AND to_date('20:00', 'hh24:mi');
возвращаются строки где время за одну и ту же дату лежит в интервале 08:00 и 20:00.
Код: plaintext
1.
 1 	 01 . 12 . 2009   8 : 01 : 00 
 2 	 01 . 12 . 2009   16 : 31 : 00 
...
Рейтинг: 0 / 0
временной промежуток
    #36363381
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xymboSagit,

Давайте так:
1) составьте набор тестовых данных, опубликуйте его здесь.
2) покажите результат, который Вы хотите получить.

Например так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
WITH t AS (
     SELECT  1  ID, to_date('01.12.2009 08:01', 'dd.mm.yyyy hh24:mi') dt FROM dual UNION ALL
     SELECT  2  ID, to_date('01.12.2009 16:31', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  3  ID, to_date('03.12.2009 19:20', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  4  ID, to_date('02.12.2009 20:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  5  ID, to_date('01.12.2009 21:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  6  ID, to_date('01.12.2009 02:01', 'dd.mm.yyyy hh24:mi') FROM dual)
SELECT t.* FROM t     
WHERE t.dt BETWEEN to_date('08:00', 'hh24:mi') AND to_date('20:00', 'hh24:mi');
Здесь t - тестовая табличка, и в результате выполнения запроса
Код: plaintext
1.
SELECT t.* FROM t     
WHERE t.dt BETWEEN to_date('08:00', 'hh24:mi') AND to_date('20:00', 'hh24:mi');
возвращаются строки где время за одну и ту же дату лежит в интервале 08:00 и 20:00.
Код: plaintext
1.
 1 	 01 . 12 . 2009   8 : 01 : 00 
 2 	 01 . 12 . 2009   16 : 31 : 00 

сделал вот что
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select "P_ID", 
"P_EKG",
"P_KOD",
"P_S",
"P_DO"
from "#OWNER#"."PROSTOI_EKG" 
WHERE "PROSTOI_EKG"."P_S" BETWEEN to_date('08:00', 'hh24:mi') AND to_date('20:00', 'hh24:mi')
дает в просмотре no tata fount
может trunc поставить сейчас испвтаю и выложу
...
Рейтинг: 0 / 0
временной промежуток
    #36363384
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет тоже самое выдает
...
Рейтинг: 0 / 0
временной промежуток
    #36363385
xymbo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sagit,

Покажите, что содержит поле "PROSTOI_EKG"."P_S".
...
Рейтинг: 0 / 0
временной промежуток
    #36363391
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL> select * from prostoi_ekg
2 /

P_ID P_ P_KOD P_S P_DO
---------- -- ---------- ------------------ --------------------------------------
42 01 12 13-DEC-09
...
Рейтинг: 0 / 0
временной промежуток
    #36363395
xymbo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sagit,

А где время?
...
Рейтинг: 0 / 0
временной промежуток
    #36363402
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xymboSagit,

А где время?
странно в самой форме показывает а в запросе нет и в таблицах тоже нет странно
хотя маску вввода прописывал в апексе
...
Рейтинг: 0 / 0
временной промежуток
    #36363469
xymbo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SagitxymboSagit,

А где время?
странно в самой форме показывает а в запросе нет и в таблицах тоже нет странно
хотя маску вввода прописывал в апексе
Смотрите, что у Вас записывает приложение в БД.
Пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE TABLE test_time(ID NUMBER, dt DATE);

INSERT INTO test_time
SELECT t.*
FROM (
     SELECT  1  ID, to_date('01.12.2009 08:01', 'dd.mm.yyyy hh24:mi') dt FROM dual UNION ALL
     SELECT  2  ID, to_date('01.12.2009 16:31', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  3  ID, to_date('03.12.2009 19:20', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  4  ID, to_date('02.12.2009 20:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  5  ID, to_date('01.12.2009 21:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  6  ID, to_date('01.12.2009 02:01', 'dd.mm.yyyy hh24:mi') FROM dual) t;
     
SELECT * FROM test_time;   
В итоге в таблице:
Код: plaintext
1.
2.
3.
4.
5.
 1 	 01 . 12 . 2009   8 : 01 : 00 
 2 	 01 . 12 . 2009   16 : 31 : 00 
 3 	 03 . 12 . 2009   19 : 20 : 00 
 4 	 02 . 12 . 2009   20 : 01 : 00 
 5 	 01 . 12 . 2009   21 : 01 : 00 
 6 	 01 . 12 . 2009   2 : 01 : 00 
...
Рейтинг: 0 / 0
временной промежуток
    #36363849
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sagitподскажите как вводить только время без даты, а выводить и время и дату

В APEX Date Picker обязательно включает дату. Вы можете выставить её по умолчанию, но чтобы запретить пользователю менять её, Вам придётся постараться. :)
...
Рейтинг: 0 / 0
временной промежуток
    #36390761
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xymboSagitxymboSagit,

А где время?
странно в самой форме показывает а в запросе нет и в таблицах тоже нет странно
хотя маску вввода прописывал в апексе
Смотрите, что у Вас записывает приложение в БД.
Пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE TABLE test_time(ID NUMBER, dt DATE);

INSERT INTO test_time
SELECT t.*
FROM (
     SELECT  1  ID, to_date('01.12.2009 08:01', 'dd.mm.yyyy hh24:mi') dt FROM dual UNION ALL
     SELECT  2  ID, to_date('01.12.2009 16:31', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  3  ID, to_date('03.12.2009 19:20', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  4  ID, to_date('02.12.2009 20:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  5  ID, to_date('01.12.2009 21:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  6  ID, to_date('01.12.2009 02:01', 'dd.mm.yyyy hh24:mi') FROM dual) t;
     
SELECT * FROM test_time;   
В итоге в таблице:
Код: plaintext
1.
2.
3.
4.
5.
 1 	 01 . 12 . 2009   8 : 01 : 00 
 2 	 01 . 12 . 2009   16 : 31 : 00 
 3 	 03 . 12 . 2009   19 : 20 : 00 
 4 	 02 . 12 . 2009   20 : 01 : 00 
 5 	 01 . 12 . 2009   21 : 01 : 00 
 6 	 01 . 12 . 2009   2 : 01 : 00 


Извините сделал вмсе как вы написали, но не вышло у меня тут вот, что получилось
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
SQL> CREATE TABLE test_time(ID NUMBER, dt DATE);


Table created.

SQL> SQL> NSERT INTO test_time
SELECT t.*
FROM (
     SELECT  1  ID, to_date('01.12.2009 08:01', 'dd.mm.yyyy hh24:mi') dt FROM dual UNION ALL
     SELECT  2  ID, to_date('01.12.2009 16:31', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  3  ID, to_date('03.12.2009 19:20', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  4  ID, to_date('02.12.2009 20:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  5  ID, to_date('01.12.2009 21:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  6  ID, to_date('01.12.2009 02:01', 'dd.mm.yyyy hh24:mi') FROM dual) t;
SP2- 0734 : unknown command beginning "NSERT INTO..." - rest of line ignored.
SQL>    2      3      4      5      6      7      8   
	ID DT
---------- ------------------
	  1   01 -DEC- 09 
	  2   01 -DEC- 09 
	  3   03 -DEC- 09 
	  4   02 -DEC- 09 
	  5   01 -DEC- 09 
	  6   01 -DEC- 09 

 6  rows selected.

SQL> SELECT * FROM test_time;   

no rows selected

SQL> 
...
Рейтинг: 0 / 0
временной промежуток
    #36390776
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как быть я тут чисто эксперимент поставил
Вместо date дал тип varchar2(20) тогда время попало в поле, но кроме даты теперь можно вводить всякие другие символы, что конечно не желательно
Как быть время не попадает в поле
Разобрался в приложении как выводить на страницу, и дату, и время и только время. Думал, что в поле таблицы попадает время тоже, однако нет не вводится.
...
Рейтинг: 0 / 0
временной промежуток
    #36390777
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С детства мечтал стать дворником, но из-за наплыва дешевой рабочей силы пришлось переквалифицироваться в программисты. Теперь вот боюсь, что скоро гастарбайтеры выйдут и на этот рынок труда.
...
Рейтинг: 0 / 0
временной промежуток
    #36390798
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SagitИзвините сделал вмсе как вы написали, но не вышло у меня тут вот, что получилось


Are you already celebrating NY and are completely wasted:


Код: plaintext
1.
SP2-0734: unknown command beginning "NSERT INTO..." - rest of line ignored.

SY.
...
Рейтинг: 0 / 0
временной промежуток
    #36390810
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-С детства мечтал стать дворником, но из-за наплыва дешевой рабочей силы пришлось переквалифицироваться в программисты. Теперь вот боюсь, что скоро гастарбайтеры выйдут и на этот рынок труда.Что вы хотели этим сказать
что я не справлюсь или что ели нет так и скажите и не чего тут хихи ловить
...
Рейтинг: 0 / 0
временной промежуток
    #36390821
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SYSagitИзвините сделал вмсе как вы написали, но не вышло у меня тут вот, что получилось


Are you already celebrating NY and are completely wasted:


Код: plaintext
1.
SP2-0734: unknown command beginning "NSERT INTO..." - rest of line ignored.

SY.
Спасибо огромное за критику
в следующий раз буду внимательнее, но простите еще раз все равно время не пападает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
SQL> INSERT INTO test_time
SELECT t.*
FROM (
     SELECT  1  ID, to_date('01.12.2009 08:01', 'dd.mm.yyyy hh24:mi') dt FROM dual UNION ALL
     SELECT  2  ID, to_date('01.12.2009 16:31', 'dd.mm.yyyy hh24:mi')    2   FROM dual UNION ALL
     SELECT  3  ID, to_date('03.12.2009 19:20', 'dd.mm.y  3  yyy hh24:mi') FROM dual UNION ALL
     SELECT  4  ID, to_d   4   ate('02.12.2009 20:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     SELECT  5  ID, to_date('01.12.2009 21:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
     S   5   ELECT  6  ID, to_date('01.12.2009 02:01', 'dd.mm.yyyy hh24:mi') FROM dual) t;

 6  rows created.

SQL> SELECT * FROM test_time;

	ID DT
---------- ------------------
	  1   01 -DEC- 09 
	  2   01 -DEC- 09 
	  3   03 -DEC- 09 
	  4   02 -DEC- 09 
	  5   01 -DEC- 09 
	  6   01 -DEC- 09 

 6  rows selected.

SQL> 
как мне быть дворником и гастарбайтером не пойду лучше повеситься
...
Рейтинг: 0 / 0
временной промежуток
    #36390865
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sagit
как мне быть дворником и гастарбайтером не пойду лучше повеситься

OK. Read my leaps. There are DATEs and there are external date representations. DATE always has both date and time and it is stored in the database in internal date format . When you use to_date('01.12.2009 08:01', 'dd.mm.yyyy hh24:mi') you say take string '01.12.2009 08:01', and convert it to DATE using format mask 'dd.mm.yyyy hh24:mi'. Now when client tool SQL*Plus selects DATE column/expression from a table is implicitly displays it to a human readable string. And to convert it SQL*Plus uses NLS_DATE_FORMAT parameter value (which is client side setting). If NLS_DATE_FORMAT is not set, it defaults to DD-MON-YY. I hope now you understand why SELECT * FROM test_time does not show time. You could set NLS_DATE_FORMAT in registry/environment variable or set it for the session:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
SQL> with t as (
   2        SELECT  1  ID, to_date('01.12.2009 08:01', 'dd.mm.yyyy hh24:mi') dt FROM dual UNION ALL
   3        SELECT  2  ID, to_date('01.12.2009 16:31', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   4        SELECT  3  ID, to_date('03.12.2009 19:20', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   5        SELECT  4  ID, to_date('02.12.2009 20:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   6        SELECT  5  ID, to_date('01.12.2009 21:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   7        SELECT  6  ID, to_date('01.12.2009 02:01', 'dd.mm.yyyy hh24:mi') FROM dual)
   8   select * from t
   9   /

        ID DT
---------- ---------
          1   01 -DEC- 09 
          2   01 -DEC- 09 
          3   03 -DEC- 09 
          4   02 -DEC- 09 
          5   01 -DEC- 09 
          6   01 -DEC- 09 

 6  rows selected.

SQL> alter session set nls_date_format='mm/dd/yyyy hh24:mi:ss'
   2   /

Session altered.

SQL> with t as (
   2        SELECT  1  ID, to_date('01.12.2009 08:01', 'dd.mm.yyyy hh24:mi') dt FROM dual UNION ALL
   3        SELECT  2  ID, to_date('01.12.2009 16:31', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   4        SELECT  3  ID, to_date('03.12.2009 19:20', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   5        SELECT  4  ID, to_date('02.12.2009 20:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   6        SELECT  5  ID, to_date('01.12.2009 21:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   7        SELECT  6  ID, to_date('01.12.2009 02:01', 'dd.mm.yyyy hh24:mi') FROM dual)
   8   select * from t
   9   /

        ID DT
---------- -------------------
          1   12 / 01 / 2009   08 : 01 : 00 
          2   12 / 01 / 2009   16 : 31 : 00 
          3   12 / 03 / 2009   19 : 20 : 00 
          4   12 / 02 / 2009   20 : 01 : 00 
          5   12 / 01 / 2009   21 : 01 : 00 
          6   12 / 01 / 2009   02 : 01 : 00 

 6  rows selected.

SQL> alter session set nls_date_format='hh24:mi:ss'
   2   /

Session altered.

SQL> with t as (
   2        SELECT  1  ID, to_date('01.12.2009 08:01', 'dd.mm.yyyy hh24:mi') dt FROM dual UNION ALL
   3        SELECT  2  ID, to_date('01.12.2009 16:31', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   4        SELECT  3  ID, to_date('03.12.2009 19:20', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   5        SELECT  4  ID, to_date('02.12.2009 20:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   6        SELECT  5  ID, to_date('01.12.2009 21:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   7        SELECT  6  ID, to_date('01.12.2009 02:01', 'dd.mm.yyyy hh24:mi') FROM dual)
   8   select * from t
   9   /

        ID DT
---------- --------
          1   08 : 01 : 00 
          2   16 : 31 : 00 
          3   19 : 20 : 00 
          4   20 : 01 : 00 
          5   21 : 01 : 00 
          6   02 : 01 : 00 

 6  rows selected.

SQL> 


However, keep in mind implicit date converstion is a bad practice. Use explicit conversions:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
SQL> with t as (
   2        SELECT  1  ID, to_date('01.12.2009 08:01', 'dd.mm.yyyy hh24:mi') dt FROM dual UNION ALL
   3        SELECT  2  ID, to_date('01.12.2009 16:31', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   4        SELECT  3  ID, to_date('03.12.2009 19:20', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   5        SELECT  4  ID, to_date('02.12.2009 20:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   6        SELECT  5  ID, to_date('01.12.2009 21:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   7        SELECT  6  ID, to_date('01.12.2009 02:01', 'dd.mm.yyyy hh24:mi') FROM dual)
   8   select id,to_char(dt,'dd.mm.yyyy hh24:mi') dt from t
   9   /

        ID DT
---------- ----------------
          1   01 . 12 . 2009   08 : 01 
          2   01 . 12 . 2009   16 : 31 
          3   03 . 12 . 2009   19 : 20 
          4   02 . 12 . 2009   20 : 01 
          5   01 . 12 . 2009   21 : 01 
          6   01 . 12 . 2009   02 : 01 

 6  rows selected.

SQL> with t as (
   2        SELECT  1  ID, to_date('01.12.2009 08:01', 'dd.mm.yyyy hh24:mi') dt FROM dual UNION ALL
   3        SELECT  2  ID, to_date('01.12.2009 16:31', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   4        SELECT  3  ID, to_date('03.12.2009 19:20', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   5        SELECT  4  ID, to_date('02.12.2009 20:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   6        SELECT  5  ID, to_date('01.12.2009 21:01', 'dd.mm.yyyy hh24:mi') FROM dual UNION ALL
   7        SELECT  6  ID, to_date('01.12.2009 02:01', 'dd.mm.yyyy hh24:mi') FROM dual)
   8   select id,to_char(dt,'hh24:mi') dt from t
   9   /

        ID DT
---------- -----
          1   08 : 01 
          2   16 : 31 
          3   19 : 20 
          4   20 : 01 
          5   21 : 01 
          6   02 : 01 

 6  rows selected.

SQL> 
SY.
...
Рейтинг: 0 / 0
временной промежуток
    #36399050
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо
получилось только в той таблице которая экспериментальная а вот в приложении не получаться
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select "N_ID", 
"N_EKG",
"N_CKAD",
to_char(N_OPEN,'dd.mm.yyyy hh24:mi')"N_OPEN",
"N_CLOSE"
from "#OWNER#"."NARYAD_EKG" 

where "N_OPEN" >= trunc(sysdate) and "N_OPEN" < trunc(sysdate) +  1 
это я прописываю в разделе Source --> Region Source
прежде ставлю typy sql query
на запрос вот что дает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> select * from NARYAD_EKG
   2   /

      N_ID N_ N_CKAD		   N_OPEN	      N_CLOSE
---------- -- -------------------- ------------------ ------------------
	  1   01  сектор I	    12 -DEC- 09 	       12 -DEC- 09 
	  2   01  сектор VII	    13 -DEC- 09 
	  3   01  сектор III	    13 -DEC- 09 
	  4   01  сектор I	    06 -JAN- 10 
или я не понял до конца как надо прописать запрос
...
Рейтинг: 0 / 0
временной промежуток
    #36399056
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sagit,

в APEX Вы можете настроить формат даты для конкретного столбца: Report Attributes->Edit Column->Column Formatting->Number / Date Format.
...
Рейтинг: 0 / 0
временной промежуток
    #36399100
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerSagit,
в APEX Вы можете настроить формат даты для конкретного столбца: Report Attributes->Edit Column->Column Formatting->Number / Date Format. Простите это я сделал на всех рапортах какие только у меня есть, но время выходит только в рапорте а в самом запросе не выходит
мне надо так что бы и в запросе выходило
...
Рейтинг: 0 / 0
временной промежуток
    #36399117
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sagitмне надо так что бы и в запросе выходило

Зачем ? Если для проверки - Вам уже показали, как проверить подобный запрос в SQL*Plus, чтобы увидеть время у дат, а не только знать, что оно там есть - используя to_char() и/или alter session set nls_date_format. Если этот запрос формирует данные отчёта в APEX, то без всяких to_char() выбирайте нужные даты, а их отображение настраивайте там, где я уже сказал.
...
Рейтинг: 0 / 0
временной промежуток
    #36399143
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer
Зачем ? Если для проверки - Вам уже показали, как проверить подобный запрос в SQL*Plus, чтобы увидеть время у дат, а не только знать, что оно там есть - используя to_char() и/или alter session set nls_date_format. Если этот запрос формирует данные отчёта в APEX, то без всяких to_char() выбирайте нужные даты, а их отображение настраивайте там, где я уже сказал.
кажется я понял просто просматривать надо отчет в самом рапорте который находиться в приложении а запрос давать необязательно рапорт уже построен на основе запроса
просто приложение пустить по локальной сети и кому надо пусть то и смотрит
Только вот как рапорт этот на печать выдавать скажем в ms word , но уже др тема

Спасибо огромное
...
Рейтинг: 0 / 0
временной промежуток
    #36401459
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток
помогите пожалуйста разобраться со скриптом
По моей ржавой логике должно быть так
проверяем поле n_open на промежуток от 8:00 до 20 :00 и делаем запрос на вывод данных
затем проверяем это же поле на промежуток второй смены т.е. от 20 :00 до 8:00 и повторяем этот же запрос
По логике временной промежуток должен указывать на 1 или 2 смену
Пишу вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Begin
if :p3_n_open > sysdate '8:00' and :p3_n_open < sysdate '20:00'
then
'select "N_ID",'|| 
'"N_EKG",'||
'"N_CKAD",'||
'to_char(N_OPEN,'dd.mm.yyyy hh24:mi')"N_OPEN",'||
'"N_CLOSE"'||
'from "#OWNER#"."NARYAD_EKG"'; 
end if;

if :p3_n_open > sysdate '20:00' and :p3_n_open < sysdate+ 1  '8:00'
then
'select "N_ID",'|| 
'"N_EKG",'||
'"N_CKAD",'||
'to_char(N_OPEN,'dd.mm.yyyy hh24:mi')"N_OPEN",'||
'"N_CLOSE"'||
'from "#OWNER#"."NARYAD_EKG"'; 
end if;
ф он мне
ORA-06550: line 3, column 25: PLS-00103: Encountered the symbol "8:00" when expecting one of the following: . ( * @ % & - + / at mod remainder rem then and or || multiset The symbol "(" was substituted for "8:00" to continue. ORA-06550: line 3, column 57: PLS-00103: Encountered the symbol "20:00" when expecting one of the following: . ( ) , * @ % & - + / at mod remainder rem and or using || multiset
как быть

Помогите с запросом
...
Рейтинг: 0 / 0
временной промежуток
    #36401612
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
APEX позволяет в источнике данных приложения указывать либо SQL-запрос, либо PL/SQL-блок, возвращающий строку с запросом. Раз Вы решили использовать второй вариант, то Вам не хватает слова RETURN перед соответствующими строками запросов. :)

PS: Господа модераторы, ещё раз скажу - эта тема больше относится к подфоруму по APEX.
-------------------------------------------------------
When I say "RTFM" or "STFF" or "STFW",
the third letter means "Following" or "Fine"...
...
Рейтинг: 0 / 0
временной промежуток
    #36401625
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sagit,

кстати, одинарные кавычки в строке представляются двумя подряд. Пример:

Код: plaintext
'to_date(''01.01.2010'', ''dd.mm.yyyy'')'


Модератор: Тема перенесена из форума "Oracle".
...
Рейтинг: 0 / 0
временной промежуток
    #36401740
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerAPEX позволяет в источнике данных приложения указывать либо SQL-запрос, либо PL/SQL-блок, возвращающий строку с запросом. Раз Вы решили использовать второй вариант, то Вам не хватает слова RETURN перед соответствующими строками запросов. :)
То есть написать вот так надо
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Begin
if :p3_n_open > sysdate "8:00" & :p3_n_open < sysdate "20:00" then
'select "N_ID",' ||
'"N_EKG",' ||
'"N_CKAD",' ||
'to_char(N_OPEN,'dd.mm.yyyy hh24:mi')"N_OPEN",' ||
'"N_CLOSE"' ||
'from "#OWNER#"."NARYAD_EKG"'; 
end if;
return N_OPEN;
if :p3_n_open > sysdate '' 20 : 00 '' & :p3_n_open < sysdate+ 1  '' 8 : 00 ''
then
'select "N_ID",'
'"N_EKG",'
'"N_CKAD",'
'to_char(N_OPEN,'dd.mm.yyyy hh24:mi')"N_OPEN",'
'"N_CLOSE"'
'from "#OWNER#"."NARYAD_EKG"'; 
end if;
return N_OPEN;
end;
...
Рейтинг: 0 / 0
временной промежуток
    #36401756
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SagitsuPPLerAPEX позволяет в источнике данных приложения указывать либо SQL-запрос, либо PL/SQL-блок, возвращающий строку с запросом. Раз Вы решили использовать второй вариант, то Вам не хватает слова RETURN перед соответствующими строками запросов. :)
То есть написать вот так надо
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Begin
if :p3_n_open > sysdate "8:00" & :p3_n_open < sysdate "20:00" then
'select "N_ID",' ||
'"N_EKG",' ||
'"N_CKAD",' ||
'to_char(N_OPEN,'dd.mm.yyyy hh24:mi')"N_OPEN",' ||
'"N_CLOSE"' ||
'from "#OWNER#"."NARYAD_EKG"'; 
end if;
return N_OPEN;
if :p3_n_open > sysdate '' 20 : 00 '' & :p3_n_open < sysdate+ 1  '' 8 : 00 ''
then
'select "N_ID",'
'"N_EKG",'
'"N_CKAD",'
'to_char(N_OPEN,'dd.mm.yyyy hh24:mi')"N_OPEN",'
'"N_CLOSE"'
'from "#OWNER#"."NARYAD_EKG"'; 
end if;
return N_OPEN;
end;
нет не работает
прописал вот так тоже не работает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
declere
q varchar2( 125458 );

begin
q := 'select "N_ID",' ||
'"N_EKG",' ||
'"N_CKAD",' ||
'"N_OPEN",' ||
'"N_CLOSE"' ||
'from "#OWNER#"."NARYAD_EKG"';
if :p3_n_open > sysdate > '8:00' and :p3_n_open < sysdate '20:00' then
returt q;
end if;

if :p3_n_open > sysdate '' 20 : 00 '' and :p3_n_open < sysdate+ 1  '' 8 : 00 ''
then
return q;
end if;
end;
...
Рейтинг: 0 / 0
временной промежуток
    #36401759
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
говорит
Query cannot be parsed within the Builder. If you believe your query is syntactically correct, check the ''generic columns'' checkbox below the region source to proceed without parsing. ORA-00900: invalid SQL statement
...
Рейтинг: 0 / 0
временной промежуток
    #36402517
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sagitнет не работает
прописал вот так тоже не работает
Код: plaintext
1.
2.
3.
4.
declere
...
returt q;
...
if :p3_n_open > sysdate '' 20 : 00 '' and :p3_n_open < sysdate+ 1  '' 8 : 00 ''


0. У Вас есть банальные синтаксические ошибки. :)
1. PL/SQL-блок в Source отчёта всегда должен возвращать строку запроса.
2. Мне почему-то кажется, что Вам нужен просто SQL-запрос. :) Что-то вроде:

Код: plaintext
1.
2.
3.
select ...
  from ...
 where ...
   and :p3_n_open < trunc(sysdate) +  1  +  8  /  24  and :p3_n_open > trunc(sysdate) +  8  /  24 
...
Рейтинг: 0 / 0
временной промежуток
    #36402581
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо
поясните только пожалуйста , что означает 8/24
...
Рейтинг: 0 / 0
временной промежуток
    #36402595
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sagit,

при добавлении выражения типа NUMBER к выражению типа DATE число неявно приводится к типу DAY TO SECOND INTERVAL, переводясь в дни. То есть, sysdate + 1 / 24 => sysdate + numtodsinterval(1 / 24, 'DAY') => текущая дата и время плюс один час.

8/24 = 8 часов.
...
Рейтинг: 0 / 0
временной промежуток
    #36402605
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerSagit,

при добавлении выражения типа NUMBER к выражению типа DATE число неявно приводится к типу DAY TO SECOND INTERVAL, переводясь в дни. То есть, sysdate + 1 / 24 => sysdate + numtodsinterval(1 / 24, 'DAY') => текущая дата и время плюс один час.

8/24 = 8 часов.Спасибо
как я понял trunc(sysdate) + 1 + 8 / 24 означает 20 00, а trunc(sysdate) + 8 / 24 8 00
Верно я понял?
...
Рейтинг: 0 / 0
временной промежуток
    #36402611
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sagitкак я понял trunc(sysdate) + 1 + 8 / 24 означает 20 00, ...
Верно я понял?

Нет. Это 8 часов утра (+ 8 / 24) следующего дня (+ 1).
...
Рейтинг: 0 / 0
временной промежуток
    #36402615
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer

Код: plaintext
1.
2.
3.
select ...
  from ...
 where ...
   and :p3_n_open < trunc(sysdate) +  1  +  8  /  24  and :p3_n_open > trunc(sysdate) +  8  /  24 

Я прописал вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 select "N_ID",
"N_EKG",
"N_CKAD",
"N_OPEN",
"N_CLOSE"
from "#OWNER#"."NARYAD_EKG"
where :p3_n_open < trunc(sysdate) +  1  +  8  /  24  and :p3_n_open > trunc(sysdate) +  8  /  24 
or :p3_n_open > trunc(sysdate) +  1  +  8  /  24  and :p3_n_open < trunc(sysdate) +  8  /  24 
результатом явилось все данные которые я дал когда было прописано
Код: plaintext
1.
where trunc ("N_open")>=trunc(sysdate)
...
Рейтинг: 0 / 0
временной промежуток
    #36402619
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sagit,

Вы так и не написали здесь, какие данные Вы хотите получить запросом. Пока что Ваш последний запрос выбирает все данные, когда :p3_n_open находится между 8 утра сегодня и 8 утра завтра.
...
Рейтинг: 0 / 0
временной промежуток
    #36402622
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerSagit,

Вы так и не написали здесь, какие данные Вы хотите получить запросом. Пока что Ваш последний запрос
выбирает все данные, когда :p3_n_open находится между 8 утра сегодня и 8 утра завтра.
Мне надо так что бы выбирались данные между 8 утра сегодня до 8 вечера сегодня, а после того как наступят 8 вечера сегодня до 8 утра завтра
...
Рейтинг: 0 / 0
временной промежуток
    #36402637
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SagitМне надо так что бы выбирались данные между 8 утра сегодня до 8 вечера сегодня, а после того как наступят 8 вечера сегодня до 8 утра завтра

Какое поле в таблице хранит время, чтобы по нему выбирать строки?
...
Рейтинг: 0 / 0
временной промежуток
    #36402652
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer, в таблице времени нет так как я не смог сделать так что бы оно там тож было
я настроил только в приложении, дал dd.mm.yyyy hh24ni в поле настройки поля dati
а так выборка идет по полю dati
...
Рейтинг: 0 / 0
временной промежуток
    #36402664
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sagit,

если Вы хотите выбрать данные за определённый промежуток времени, Вам нужно знать, к какому времени относится конкретная запись. Без столбца типа DATE или TIMESTAMP в таблице не обойтись.

Это основы теории даже не знаю чего. :) Информации, наверно. Без места для данных - а следовательно, и самих данных - невозможно использовать критерий по этим данным для отбора информации. Нет поля с датой и временем появления записи - нет информации о дате и времени появления записи - нельзя накладывать условия на дату и время появления записи.

Пересмотрите дизайн, добавьте соответствующее поле в таблицу и используйте его в запросах.
...
Рейтинг: 0 / 0
временной промежуток
    #36402702
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerSagit,

если Вы хотите выбрать данные за определённый промежуток времени, Вам нужно знать, к какому времени относится конкретная запись. Без столбца типа DATE или TIMESTAMP в таблице не обойтись.

Это основы теории даже не знаю чего. :) Информации, наверно. Без места для данных - а следовательно, и самих данных - невозможно использовать критерий по этим данным для отбора информации. Нет поля с датой и временем появления записи - нет информации о дате и времени появления записи - нельзя накладывать условия на дату и время появления записи.

Пересмотрите дизайн, добавьте соответствующее поле в таблицу и используйте его в запросах.простите вы меня не поняли у меня поле dati типа date в самой таблице там время не указано а вот в приложении время показывает, а вот что хранит поле типа TIMESTAMP ?
если время то как его заполнять?
...
Рейтинг: 0 / 0
временной промежуток
    #36402716
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sagitпростите вы меня не поняли у меня поле dati типа date в самой таблице там время не указано а вот в приложении время показывает

Вам ведь объясняли целую страницу, чем значение даты в таблице отличается от представления... Перечитайте, что ли.

А Ваш запрос должен выглядеть приблизительно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select ...
  from ...
 where ...
   and ((sysdate < trunc(sysdate) +  8  /  24  and dati >= trunc(sysdate) -  4  /  24  and dati < trunc(sysdate) +  8  /  24 )
         or
         (sysdate >= trunc(sysdate) +  8  /  24  and sysdate < trunc(sysdate) +  20  /  24  and dati >= trunc(sysdate) +  8  /  24  and dati < trunc(sysdate) +  20  /  24 )
         or
         (sysdate >= trunc(sysdate) +  20  /  24  and dati >= trunc(sysdate) +  20  /  24  and dati < trunc(sysdate) +  1  +  8  /  24 ))

Всё это можно собрать в CASE, который ещё непонятно как отразится на производительности, но тогда, боюсь, Вы потеряете нить беседы. Попробуйте разобрать условие, которое я написал.
...
Рейтинг: 0 / 0
временной промежуток
    #36413223
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer, спасибо огромное за поддержку
Я разобрал тот скрипт который вы мне дали и вот что я понял из него

стока (sysdate < trunc(sysdate) + 8/24 - контролирует врямя суток ло 8 00 утра
стоки "N_OPEN" >= trunc(sysdate) - 4/24
and "N_OPEN" < trunc(sysdate) + 8/24) я не понял до сих пор для чего
стоки (sysdate >= trunc(sysdate) + 8/24
and sysdate < trunc(sysdate) + 20/24 контролируют время в пределах 8 00 сегодня и 20 00 сегодня
а стоки "N_OPEN" >= trunc(sysdate) + 8/24
and "N_OPEN" < trunc(sysdate) + 20/24) распределяют данные поля в указном промежутке времени
строка (sysdate >= trunc(sysdate) + 20/24 контролирует время с 20 00 сегодня
я думаю тут не хватает стоки (sysdate >= trunc(sysdate)+ 1 + 8/24,
а строки "N_OPEN" >= trunc(sysdate) + 20/24
and "N_OPEN" < trunc(sysdate) + 1 + 8/24) распределяют данные поля в указном промежутке времени

Я правильно понял или нет

p.s. Посоветуйте какую нибудь книгу по oracle pl\sql для начинающих мне ужасно хочется научиться составлять такие процедуры и методы и легко ориентироваться в оракле и писать приложения под это наимощьнейшее СУБД (желательно книгу на русском языке)
У меня тут есть одна
Коннор МакДональд, Хаим Кац, Кристофер Бек,
Джоел Кальман, Дэвид Нокс

Oracle PL/SQL для
профессионалов:
практические решения

но она слишком сложная пока для меня мне азы пока нужны
если Вас не затруднит подскажите книгу для начинающего хотябы автора что бы не заказывать а скачать бесплатно можно было


Еще раз огромное спасибо
...
Рейтинг: 0 / 0
временной промежуток
    #36413385
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sagit,

0. Мы разбиваем возможное время на три интервала: до 8-ми утра сегодня, между 8-мью утра и вечера сегодня, после 8 вечера сегодня. В зависимости от того, в какой интервал попадает текущее время, выводим данные за смену 20:00 вчера-8:00, 8:00-20:00, 20:00-8:00 завтра.
1. По SQL вот хорошая книга: "Секреты Oracle SQL" от Мишры и Бьюли. По PL/SQL - "Oracle PL/SQL для профессионалов", Фейерштейн и Прибыл. По концепциям того, как и что работает - "Oracle для профессионалов", Том Кайт + собственно, Concepts .
2. Я бы Вам ещё рекомендовал что-нибудь по алгоритмам почитать. Вирт, Дейкстра, Сэджвик, Скиена... Д. Кнута советовать не буду, для него нужна масса времени, желания и знания высшей математики. :)
...
Рейтинг: 0 / 0
временной промежуток
    #36413587
Sagit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerSagit,

0. Мы разбиваем возможное время на три интервала: до 8-ми утра сегодня, между 8-мью утра и вечера сегодня, после 8 вечера сегодня. В зависимости от того, в какой интервал попадает текущее время, выводим данные за смену 20:00 вчера-8:00, 8:00-20:00, 20:00-8:00 завтра.
1. По SQL вот хорошая книга: "Секреты Oracle SQL" от Мишры и Бьюли. По PL/SQL - "Oracle PL/SQL для профессионалов", Фейерштейн и Прибыл. По концепциям того, как и что работает - "Oracle для профессионалов", Том Кайт + собственно, Concepts .
2. Я бы Вам ещё рекомендовал что-нибудь по алгоритмам почитать. Вирт, Дейкстра, Сэджвик, Скиена... Д. Кнута советовать не буду, для него нужна масса времени, желания и знания высшей математики. :)

Спасибо огромное
уже скачал только что эти книги
буду внимательно читать и практиковаться
...
Рейтинг: 0 / 0
49 сообщений из 49, показаны все 2 страниц
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / временной промежуток
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]