|
|
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
Необходимо выбрать строчку с датой из таблицы 2, которая будет выводиться только если меньше чем остальные даты Код: plsql 1. 2. 3. 4. 5. когда делаю как указано выше по всей базе выходит ошибка ora-01858, по 1, 2 предприятиям все нормально. При условии t2.start_time < t1.start_time ошибки нет но условие не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 10:48 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
aranida1, Код: plsql 1. говнокод ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 10:54 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
aranida1, 0. Какие типы данных у полей start_time в tab1 и tab2? 1. В таблице tab1 одно поле start_time? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 10:55 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
0. Сложный вопрос tab2 Typ=12 Len=7: 120,116,12,31,1,1,1 tab1 Typ=12 Len=7: 119,188,9,1,1,1,1 1. Нет там несколько, те же параметры что и во второй таблице ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 12:11 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
123йй, ну предложите что-то получше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 13:46 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
aranida1, The two data types 12 and 13 are for two different purposes. Type 12 - Dates stored in table Type 13 - Date returned by internal date functions like SYSDATE/CURRENT_DATE, also when converting a string literal into date using TO_DATE or ANSI Date literal DATE 'YYYY-MM-DD'. Соответственно, 123ий прав. Обрезать date через to_date - это говнокод с неявным преобразованием типов и плохо предсказуемым результатом. Если нужно обрезать время, используй тот же trunc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 13:50 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
aranida11. Нет там несколько, те же параметры что и во второй таблице Тогда запрос в принципе нерабочий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 13:51 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
env, Запрос рабочий и работает с условием where trunc(t2.start_time) < to_date (t1.start_time,'dd-mm-yyyy') но не по всей базе а только для отдельных предприятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 14:18 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
aranida1, 1 desc tab1 2 desc tab2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 14:22 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
envaranida11. Нет там несколько, те же параметры что и во второй таблице Тогда запрос в принципе нерабочий. просто интересно при какой маске и дате получим "ora-01858, по 1, 2 предприятиям все нормально" 2 aranida1 для 1, 2 предприятий t1.start_time not null? ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 14:37 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
aranida1, Код: plsql 1. 2. 3. 4. 5. там несколько Запрос рабочий и работает в одном из утверждений ты обманываешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 14:44 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
aranida1env, Запрос рабочий и работает с условием where trunc(t2.start_time) < to_date (t1.start_time,'dd-mm-yyyy') но не по всей базе а только для отдельных предприятий. с трудом верітся Код: plsql 1. 2. 3. 4. 5. ps зачем Вам to_date если поле типа date? ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 14:44 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
Staxпри какой маске и дате получим "ora-01858, по 1, 2 предприятиям все нормально" 01-01 .. 12-01 01-01 .. 01-12 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 14:45 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
Stax, ИМХО tab1.start_time - varchar для 2 предприятий заполено как 'dd-mm-yyyy' + авторПри условии t2.start_time < t1.start_time ошибки нет но условие не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 14:47 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
envStaxпри какой маске и дате получим "ora-01858, по 1, 2 предприятиям все нормально" 01-01 .. 12-01 01-01 .. 01-12 имхо так ору не дост, неправильно посчитает, но ora-01858 не будет зы исходим из автор0. Сложный вопрос tab2 Typ=12 Len=7: 120,116,12,31,1,1,1 tab1 Typ=12 Len=7: 119,188,9,1,1,1,1 12-date ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 14:54 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
env, with tab1 (select id, uwi, start_time from tab3 where ph.start_time between TO_DATE('01-04-1901','DD-MM-YYYY hh24:mi:ss') and TO_DATE('15-09-2018','DD-MM-YYYY hh24:mi:ss') group by id, uwi,start_time), tab4 as (select * from tab1 union select id, uwi, min(ph.start_time) start_time from tab2 where exists (select null from tab1 t1 where trunc (ph.start_time) < TO_DATE (t1.start_time,'DD-MM-YYYY hh24:mi:ss') ) group by id, uwi) select ............ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 14:58 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
Stax, Хорошо если тип date и не надо преобразовывать в to_date, почему тогда просто условие where t2.start_time < t1.start_time не работает, есть какие-нибудь идеи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 15:05 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
Staxenvпропущено... 01-01 .. 12-01 01-01 .. 01-12 имхо так ору не дост, неправильно посчитает, но ora-01858 не будет ..... stax та запросто даст, если для to_date (t1.start_time,'dd-mm-yyyy') в поле t1.start_time - будет дата в другом формате, напимер '10-JAN-2001' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 15:08 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
aranida1Stax, Хорошо если тип date и не надо преобразовывать в to_date, почему тогда просто условие where t2.start_time < t1.start_time не работает, есть какие-нибудь идеи? Вы бы лучше сказали какой тип у start_time, а не условия ставили ... да и не понятно что значит "не работает" выводит ошибку или не то что Вы хотели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 15:11 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
aranida1Stax, Хорошо если тип date и не надо преобразовывать в to_date, почему тогда просто условие where t2.start_time < t1.start_time не работает, есть какие-нибудь идеи? что значит не работает? выбирает лишнее/недостающие? ps по любому to_date от поля типа date ето мина (касяк) зыы как вариант в одной табличке значение start_time ето дата в другой дата+время ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 15:11 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
MaximaXXLВы бы лучше сказали какой тип у start_time ТС явно через dump показал, что date. aranida1where t2.start_time < t1.start_time не работает, Пример на данных показывай. А то как-то не верится. И запрос уже приведи хоть к насколько-то читабельному и непротиворечивому виду. А то опять синтаксически корявый вариант приводишь. Скорее всего, у тебя есть дополнительные отсечки или данные не пересекаются. Но по твоим попыткам обфусцировать запрос этого понять нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 15:18 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
envТС явно через dump показал, что date. ТС показал результат неизвестного запроса, а вот мой вопрос про desc проигнорировал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 15:31 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
aranida1, похоже тебе так подойдет: Код: plsql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 15:47 |
|
||
|
Сравнение Дат и ошибка ora-01858
|
|||
|---|---|---|---|
|
#18+
env, Запрос просто огромный, почикала со всех сторон и все. Stax, Не работает это выводит минимальную дату даже тогда, когда t2.start_time больше t1.start_time например вывела дату 31.12.2011 хотя она больше 01.01.2011 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 16:13 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39499740&tid=1885495]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
173ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
81ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 540ms |

| 0 / 0 |
