Работа с датами (в Oracle) |
Вчера "приперло" написать небольшой скриптик изменения поля типа Date. ("обмануть" кассовый модуль для запуска на автомате полной выгрузки на кассы). Все вр гоняем запросы/отчеты, работая только с датой, не захватывая время. А тут вот надо было точно и время указывать. Поэтому и заметочку пишу.
Тип данных DATE применяется в Oracle для хранения даты и времени. Вне зависимости от применяемого пользователем формата, 7 байт поля такого типа содержат след.: 1. Век 2. Год 3. Месяц 4. День 5. Час 6. Минута 7. Секунда. И уж тут извлекай из него что хошь.
Полезные ф-ции TO_DATE(строка [,формат]), TO_CHAR(дата [, формат]) - из строки в дату и из даты в строку, соотв. Не буду расписывать форматы, можно найти в любом хелпе/инете.
Мне понравилось, что к дате можно прибавлять дни, месяцы, годы, часы, минуты, секунды. Считается, что единицей зн-я, прибавляемого к дате, является день. То бишь, чтоб добавить к дате несколько дней/ недель / месяцев (тут лучше ADD_MONTHS() юзать)/ лет, а тж часть дня (часов/ минут/ секунд), нужно просто умножить на соотв.коэффициент, преобразовав все к дням:
SELECT SYSDATE+7 FROM DUAL -- добавили неделю
SELECT TO_CHAR(SYSDATE, 'DD.MM.YYYY HH:MI:SS'), TO_CHAR(SYSDATE + (20/1440), 'DD.MM.YYYY HH:MI:SS')
-- добавили 20 минут (в сутках 1440 мин.).
Вот вчера и развлеклась с минутами за считанные секунды ;) оч удобно. Хорошо, что под рукой есть книженция "Секреты Oracle SQL" от Санжей Мишра и Алана Бьюли. Рекомендую. А уж как она помогает при составлении каверзных запросов!
Рубрики: | Работа |
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |