powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сравнение дат
10 сообщений из 10, страница 1 из 1
Сравнение дат
    #39394396
ArchiSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возник следующий вопрос. Когда мы пишем
select .... from ...
where d_date < to_date('27.01.2017','DD.MM.YYYY')

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

Нашел следующий ответ в http://www.sql.ru/forum/1222766/otschet-vremeni-ot-kakoy-daty-proishodit
ElicНи от какой.
RTFM Datetime Data Types (FAQ) : "Dates are stored …"

При этом здесь http://www.sql.ru/forum/242681-1/format-daty-v-oracle пишут про 01.01.1970. Функция UNIX_TIMESTAMP(date) также отсчитывает секунды с 1 января 1970 года.
Также в топике http://www.sql.ru/forum/1222766/otschet-vremeni-ot-kakoy-daty-proishodit пишут Вячеслав ЛюбомудровСмех-смехом, а некоторые вещи отсчитываются от 1988 . Про что здесь идет речь?

И все таки интересно понять, что происходит когда происходит сравнение дат.
...
Рейтинг: 0 / 0
Сравнение дат
    #39394401
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArchiSQLдля выполнения сравнения насколько я понимаю Оракл преобразует дату в секунды, а затем уже численные значения сравнивает?Заблуждаешься.
ArchiSQLТогда от какой даты идет отсчет?Читай мой ответ ещё раз.
...
Рейтинг: 0 / 0
Сравнение дат
    #39394877
ArchiSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ElicArchiSQLдля выполнения сравнения насколько я понимаю Оракл преобразует дату в секунды, а затем уже численные значения сравнивает?Заблуждаешься.
ArchiSQLТогда от какой даты идет отсчет?Читай мой ответ ещё раз.

Если "ни от какой", тогда непонятно как происходит сравнение двух дат, вернее как машина это делает.
...
Рейтинг: 0 / 0
Сравнение дат
    #39394881
ArchiSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"The database stores dates internally as numbers. Dates are stored in fixed-length fields of 7 bytes each, corresponding to century, year, month, day, hour, minute, and second." - это по ссылке от уважаемого Elic.
То есть получается сначала идет сравнение 1 байта, который соответствует веку, затем если значения одинаковы, тогда происходит сравнения 2 байта, соответствующего году и т.д.
Такова логика?
...
Рейтинг: 0 / 0
Сравнение дат
    #39394883
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArchiSQLкак происходит сравнение двух дат, вернее как машина это делает.Побайтно:
ArchiSQLElic"Dates are stored …"
...
Рейтинг: 0 / 0
Сравнение дат
    #39394886
ArchiSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ArchiSQLТакже в топике http://www.sql.ru/forum/1222766/otschet-vremeni-ot-kakoy-daty-proishodit пишут Вячеслав ЛюбомудровСмех-смехом, а некоторые вещи отсчитываются от 1988

Интересно, про что здесь речь шла насчет отсчета с 1988 года, а не с 1 января 1970 года (это дата, я так понимаю, установлена по дефолту за начало отсчета)
...
Рейтинг: 0 / 0
Сравнение дат
    #39394888
ArchiSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ElicArchiSQLкак происходит сравнение двух дат, вернее как машина это делает.Побайтно:
ArchiSQLпропущено...


Спасибо за ответ!)
...
Рейтинг: 0 / 0
Сравнение дат
    #39394894
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArchiSQL1 января 1970 года (это дата, я так понимаю, установлена по дефолту за начало отсчета)Опять двадцать пять.
...
Рейтинг: 0 / 0
Сравнение дат
    #39394906
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArchiSQL,


1 января 1970 годаПрисоединен к:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing opt
ions

SQL> select sysdate-1e10 from dual;
select sysdate-1e10 from dual
*
ошибка в строке 1:
ORA-01841: (полный) год должен быть между -4713 и +9999, и не 0
...
Рейтинг: 0 / 0
Сравнение дат
    #39395937
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SCN, например, проверяется, что он не превышает 16384*количество секунд с 1 января 1988
Даты в контролах и заголовках файлов тоже хранятся во внутреннем 4-х байтном формате, содержащем кол-во секунд с 01-01-1988 (так же как и проверка SCN, там есть небольшое допущение, что каждый месяц содержит 31 день)
Несколько ошибок на эту тему
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
hermes.oracle> oerr ora 351
00351, 00000, "recover-to time invalid"
// *Cause:  The time specified in a recover-until statement must
//          be after January 1st 1988.
// *Action: Specify a time after January 1st 1988.

hermes.oracle> oerr ora 1282
01282, 00000, "date range specified is invalid"
// *Cause: startTime may be greater than endTime.  startTime or endTime may be
//         greater than year 2110.  startTime may be less than year 1988.
// *Action: Specify a valid date range.

hermes.oracle> oerr ora 1513                                                                                  
01513, 00000, "invalid current time returned by operating system"
// *Cause:  The operating system returned a time that was not between
//          1988 and 2121.
// *Action: Correct the time kept by the operating system.
Особенно это прикольно, что первая (вторая) версия Oracle Database вышла в 1979 году, а в 1988 вышла уже Oracle 6
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сравнение дат
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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