Конвертация даты в оракуле - PullRequest
1 голос
/ 09 декабря 2011

У меня есть эта часть запроса, которая преобразовывает значение create_date, чтобы его можно было сравнить с системной датой.

date_time имеет тип данных числа.кто-нибудь объяснит мне преобразование, которое происходит?Почему используются следующие значения, такие как 1970/01/01 00:00:00 и 86400?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 09 декабря 2011

Дата '1970/01/01 00:00:00' - это дата начала unix "эпохи".Многие системы отсчитывают секунды с этого времени.Число 86400 - это количество секунд в одном дне.86400 = 60 секунд * 60 минут * 24 часа

0 голосов
/ 09 декабря 2011
TO_DATE('1970/01/01 00:00:00','yyyy/mm/dd hh24:mi:ss')

Данные в вашем столбце могут быть в строковом формате 1970/01/01 00: 00: 00 , а с to_date вы указываете Oracle преобразовать их в формат даты как yyyy/mm/dd hh24:mi:ss Он по-прежнему отображается как 1970/01/01 00: 00: 00 , но теперь он имеет тип данных ДАТА .Для получения дополнительной информации о типе данных Oracle DATE смотрите здесь.

И 86400 - это день в секундах: 60 seconds x 60 minutes x 24 hours = 86400

Вы используете это для добавления Новый день!

0 голосов
/ 09 декабря 2011

Кто бы ни создал числовое значение в date_time, он создал его как «секунды с 1 января 1970 г. 00:00».

Итак, значения основаны на 1970/01 / 01.

То, что вы добавляете 1 к дате, вы добавляете 1 день. Таким образом, значение date_time делится на количество секунд в дне. (60 с * 60 м * 24 ч = 86400 с)

Когда вы добавляете Date_Time / 86400 дней к базовой дате, вы получаете дату-время, которое представляет значение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...