Ðàáîòà ñ äàòàìè (â 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] [Íîâûå] |