powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сравнение дат
18 сообщений из 18, страница 1 из 1
Сравнение дат
    #39365459
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можете подсказать

Код: plsql
1.
2.
SELECT TO_CHAR(CREATED, 'dd.mm.yyyy') from user_info
where ((TO_CHAR(CREATED, 'dd.mm.yyyy')) BETWEEN '13.11.2016' AND '13.12.2016')



Код: plsql
1.
2.
SELECT TO_CHAR(CREATED, 'dd.mm.yyyy') from user_info
where (TRUNC(CREATED) BETWEEN '13.11.2016' AND '13.12.2016')



В 1 случае не работает, во 2 отображает
Почему?
...
Рейтинг: 0 / 0
Сравнение дат
    #39365465
ORA__SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=Koba=-Можете подсказать
Почему?Потому что сравниваешь строки, а думаешь, что сравниваешь даты
...
Рейтинг: 0 / 0
Сравнение дат
    #39365469
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поле CREATED типа date?
Если да, то использовать '13.11.2016' без to_date просто неприлично.
...
Рейтинг: 0 / 0
Сравнение дат
    #39365470
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ORA__SQL-=Koba=-Можете подсказать
Почему?Потому что сравниваешь строки, а думаешь, что сравниваешь даты
А разве в первом случае строки не одинаковы?
...
Рейтинг: 0 / 0
Сравнение дат
    #39365471
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55Поле CREATED типа date?
Если да, то использовать '13.11.2016' без to_date просто неприлично.
В 1 select или во 2?
...
Рейтинг: 0 / 0
Сравнение дат
    #39365472
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=Koba=-В 1 select или во 2?
Везде, где ты сравниваешь date с текстовым литералом.
...
Рейтинг: 0 / 0
Сравнение дат
    #39365477
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55-=Koba=-В 1 select или во 2?
Везде, где ты сравниваешь date с текстовым литералом.
Код: plsql
1.
2.
SELECT CREATED FROM USER_INFO
WHERE TRUNC(CREATED) BETWEEN TO_DATE('13.11.2016') and TO_DATE('13.12.2016')



Те строки к датам надо, а собственно почему? Почему даты к строкам нельзя и сравнивать?
...
Рейтинг: 0 / 0
Сравнение дат
    #39365484
XMLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=Koba=- Почему даты к строкам нельзя и сравнивать?

Потому что строки можно сравнить только на равно.
...
Рейтинг: 0 / 0
Сравнение дат
    #39365495
Xdredd.vl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-=Koba=-tru55пропущено...

Везде, где ты сравниваешь date с текстовым литералом.
Код: plsql
1.
2.
SELECT CREATED FROM USER_INFO
WHERE TRUNC(CREATED) BETWEEN TO_DATE('13.11.2016') and TO_DATE('13.12.2016')



Те строки к датам надо, а собственно почему? Почему даты к строкам нельзя и сравнивать?

1) Отличная шутка, сдается мне что дата 22.12.2015 будет меньше даты 11.12.2016, а строка 22.12.2015 будет "больше"(а если быть точным иметь больший порядковый номер при сортировке) строки 11.12.2016.

2) TO_DATE('13.11.2016') - зло, так как (10.11.2016) может в разных странах обозначать и одиннадцатое октября, и десятое ноября, исправляется маской вторым параметром to_date('__.__.____','dd.mm.yyyy') - и вам понятнее и ораклу и будущие поколения не будут хотеть бить вас ногами.
...
Рейтинг: 0 / 0
Сравнение дат
    #39365502
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо =)
...
Рейтинг: 0 / 0
Сравнение дат
    #39366078
Koresh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Xdredd.vl-=Koba=-пропущено...

Код: plsql
1.
2.
SELECT CREATED FROM USER_INFO
WHERE TRUNC(CREATED) BETWEEN TO_DATE('13.11.2016') and TO_DATE('13.12.2016')



Те строки к датам надо, а собственно почему? Почему даты к строкам нельзя и сравнивать?

1) Отличная шутка, сдается мне что дата 22.12.2015 будет меньше даты 11.12.2016, а строка 22.12.2015 будет "больше"(а если быть точным иметь больший порядковый номер при сортировке) строки 11.12.2016..

Своими глазами видел в одном запросе на production, как две даты сравнивались путем сложения приведенных к числам через to_number() года, месяца и дня, и затем проверки на равенство получившихся при сложении чисел.
И ведь довольно долго работало! ))
...
Рейтинг: 0 / 0
Сравнение дат
    #39366087
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XMLer-=Koba=- Почему даты к строкам нельзя и сравнивать?

Потому что строки можно сравнить только на равно.
Не обманывайте если не знаете.
Строки норм сравниваются если они в формате YYYY.MM.DD, а не в DD.MM.YYYY
...
Рейтинг: 0 / 0
Сравнение дат
    #39366117
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
select
   case when date '2017-01-01' between '2017-01-01' and '2017-01-01' then 'between' else 'not be' end a,
   case when date '2016-12-01' between '2017-01-01' and '2017-01-01' then 'between' else 'not be' end b
from dual;

A      B
------ -------
not be between
...
Рейтинг: 0 / 0
Сравнение дат
    #39366123
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XMLerПотому что строки можно сравнить только на равно.

Еще один корифей .

SY.
...
Рейтинг: 0 / 0
Сравнение дат
    #39366314
Xdredd.vl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KoreshXdredd.vlпропущено...


1) Отличная шутка, сдается мне что дата 22.12.2015 будет меньше даты 11.12.2016, а строка 22.12.2015 будет "больше"(а если быть точным иметь больший порядковый номер при сортировке) строки 11.12.2016..

Своими глазами видел в одном запросе на production, как две даты сравнивались путем сложения приведенных к числам через to_number() года, месяца и дня, и затем проверки на равенство получившихся при сложении чисел.
И ведь довольно долго работало! ))

за 13 лет работы с Ораклом и не такое видел, извращенцев везде полно ...
...
Рейтинг: 0 / 0
Сравнение дат
    #39367025
Jarod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С датами столько гемору, что лучше их всегда явно преобразовывать...

Возможно я разрушу чей-то мир, но лучше поздно чем никогда...

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
select * from 
(select 'a' kk from dual
union
select 'b' kk from dual
union
select 'c' kk from dual
union
select 'd' kk from dual
union
select 'f' kk from dual
union
select 'g' kk from dual
) tt
where tt.kk between 'b' and 'f'
;




Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
select * from 
(select 'a' kk from dual
union
select 'b' kk from dual
union
select 'c' kk from dual
union
select 'd' kk from dual
union
select 'f' kk from dual
union
select 'g' kk from dual
) tt
where tt.kk > 'b'
;
...
Рейтинг: 0 / 0
Сравнение дат
    #39367050
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JarodС датами столько гемору, что лучше их всегда явно преобразовывать...

Возможно я разрушу чей-то мир, но лучше поздно чем никогда...


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
  1  with t as (
  2  select 'а' s from dual union all
  3  select 'ґ' s from dual union all
  4  select 'є' s from dual union all
  5  select 'ї' s from dual union all
  6  select 'i' s from dual union all
  7  select 'ш' s from dual
  8  )
  9* select * from t where s>='а'
SQL> /

S
-
а
ш



.......
stax
...
Рейтинг: 0 / 0
Сравнение дат
    #39367053
Jarod
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
select * from 
(select 'a' kk from dual
union
select 'b' kk from dual
union
select 'c' kk from dual
union
select 'd' kk from dual
union
select 'f' kk from dual
union
select 'g' kk from dual
) tt
where tt.kk > 'b'
;


Код: plsql
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.
select * from
(select 'a' kk from dual
union
select 'b' kk from dual
union
select 'c' kk from dual
union
select 'd' kk from dual
union
select 'f' kk from dual
union
select 'g' kk from dual
) tt
where tt.kk > 'b'
;

K
-
c
d
f
g

----------------------------------------------------------
Plan hash value: 932896089

-------------------------------------------------------------------------
| Id  | Operation        | Name | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------
|   0 | SELECT STATEMENT |      |     6 |    18 |    14  (43)| 00:00:01 |
|*  1 |  VIEW            |      |     6 |    18 |    14  (43)| 00:00:01 |
|   2 |   SORT UNIQUE    |      |     6 |       |    14  (43)| 00:00:01 |
|   3 |    UNION-ALL     |      |       |       |            |          |
|*  4 |     FILTER       |      |       |       |            |          |
|   5 |      FAST DUAL   |      |     1 |       |     2   (0)| 00:00:01 |
|*  6 |     FILTER       |      |       |       |            |          |
|   7 |      FAST DUAL   |      |     1 |       |     2   (0)| 00:00:01 |
|   8 |     FAST DUAL    |      |     1 |       |     2   (0)| 00:00:01 |
|   9 |     FAST DUAL    |      |     1 |       |     2   (0)| 00:00:01 |
|  10 |     FAST DUAL    |      |     1 |       |     2   (0)| 00:00:01 |
|  11 |     FAST DUAL    |      |     1 |       |     2   (0)| 00:00:01 |
-------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------
   1 - filter(strcmp(KK, "b") > 0)
   4 - filter(NULL IS NOT NULL)
   6 - filter(NULL IS NOT NULL)
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сравнение дат
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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