Òèï TIME â MySQL
Ãëàâíàÿ Ñòðàíèöà » Êíèãè ïî PHP » MySQL óðîêè äëÿ íà÷èíàþùèõ ñ íóëÿ » Òèï TIME â MySQL
MySQL ïîëó÷àåò è îòîáðàæàåò çíà÷åíèÿ TIME â ôîðìàòå HH:MM:SS (÷àñû:ìèíóòû:ñåêóíäû) èëè HHH:MM:SS äëÿ áîëüøèõ çíà÷åíèé ÷àñîâ. Çíà÷åíèÿ TIME ìîãóò ðàñïîëàãàòüñÿ â äèàïàçîíå îò -838:59:59 äî 838:59:59. Ïðè÷èíà òîãî, ÷òî çíà÷åíèå ÷àñîâ ìîæåò áûòü íàñòîëüêî áîëüøèì, â òîì, ÷òî òèï TIME ìîæåò èñïîëüçîâàòüñÿ íå òîëüêî, ÷òîáû ïðåäñòàâèòü âðåìÿ äíÿ (êîòîðîå äîëæíî áûòü ìåíüøå, ÷åì 24 ÷àñà), íî òàêæå è ïðîøåäøåå âðåìÿ èëè èíòåðâàë âðåìåíè ìåæäó äâóìÿ ñîáûòèÿìè (êîòîðûé ìîæåò áûòü íàìíîãî áîëüøå, ÷åì 24 ÷àñà).
Âû ìîæåòå îïðåäåëÿòü çíà÷åíèÿ TIME ðàçíûìè ñïîñîáàìè:
- êàê ñòðîêó â ôîðìàòå D HH:MM:SS.fraction. Îáðàòèòå âíèìàíèå, ÷òî MySQL âñå æå íå ñîõðàíÿåò äðîáíóþ ÷àñòü äëÿ ñòîëáöà âðåìåíè. Ìîæíî òàêæå èñïîëüçîâàòü îäèí èç ñëåäóþùèõ îñëàáëåííûõ ñèíòàêñèñîâ: HH:MM:SS.fraction, HH:MM:SS, ÍÍ:ÌÌ, D HH:MM:SS, D HH:MM, D HH èëè SS. Çäåñü ïîä D ïîíèìàþòñÿ äíè â ïðåäåëàõ 0-33;
- êàê ñòðîêó áåç âñÿêèõ ðàçäåëèòåëåé â ôîðìàòå HHMMSS, ïðè óñëîâèè, ÷òî îíà èìååò ñìûñë êàê âðåìÿ. Íàïðèìåð, 101112 äîïóñòèìî è áóäåò âîñïðèíÿòî êàê 10:11:12, íî âîò 109712 èç-çà íåïðàâèëüíîé ìèíóòíîé ÷àñòè ïðåâðàòèòñÿ â 00:00:00;
- êàê ÷èñëî â ôîðìàòå HHMMSS, ïðè óñëîâèè, ÷òî îíî èìååò ñìûñë êàê âðåìÿ. Íàïðèìåð, 101112 äîïóñòèìî è áóäåò âîñïðèíÿòî êàê 10:11:12. Ñëåäóþùèå àëüòåðíàòèâíûå ôîðìàòû òàêæå áóäóò ïðî÷èòàíû: SS, MMSS, HHMMSS, HHMMSS.fraction. Îáðàòèòå âíèìàíèå, ÷òî MySQL âñå æå íå ñîõðàíÿåò äððáíóþ ÷àñòü;
- êàê ðåçóëüòàò ôóíêöèè, êîòîðàÿ âîçâðàùàåò çíà÷åíèå, êîòîðîå ÿâëÿåòñÿ ïðèåìëåìûì â êîíòåêñòå TIME, íàïðèìåð CURRENT_TIME.
Äëÿ çíà÷åíèé TIME, îïðåäåëåííûõ êàê ñòðîêè, êîòîðûå âêëþ÷àþò ðàçäåëèòåëü ÷àñòåé âðåìåíè, íåîáÿçàòåëüíî çàäàâàòü ïî äâå öèôðû äëÿ ÷àñîâ, ìèíóò èëè ñåêóíä, åñëè çíà÷åíèÿ ìåíüøå 10. Óêàçàíèå 8:3:2 àíàëîãè÷íî 08:03:02.
Áóäüòå âíèìàòåëüíû îòíîñèòåëüíî íàçíà÷åíèÿ êîðîòêèõ çíà÷åíèé TIME. Áåç òî÷êè ñ çàïÿòîé MySQL èíòåðïðåòèðóåò çíà÷åíèÿ, èñïîëüçóÿ ïðåäïîëîæåíèå, ÷òî êðàéíèå ñïðàâà öèôðû ïðåäñòàâëÿþò ñåêóíäû. MySQL èíòåðïðåòèðóåò çíà÷åíèÿ TIME êàê ïðîøåäøåå âðåìÿ, à íå âðåìÿ äíÿ. Íàïðèìåð, âû ìîãëè çàäàâàòü 1112 êàê 11:12:00, íî MySQL ïîéìåò ýòî êàê 00:11:12. Òî÷íî òàê æå 12 èíòåðïðåòèðóåòñÿ êàê çíà÷åíèå 00:00:12,
Çíà÷åíèÿ TIME ñ òî÷êîé ñ çàïÿòîé âìåñòî ýòîãî, âñåãäà îáðàáàòûâàþòñÿ êàê âðåìÿ äíÿ. Òàê 11:12 áóäåò èíòåðïðåòèðîâàòüñÿ êàê 11:12:00, íî óæ òî÷íî íå êàê 00:11:12.
Çíà÷åíèÿ, êîòîðûå íàõîäÿòñÿ âíå äèàïàçîíà TIME, íî äîïóñòèìû âî âñåì îñòàëüíîì, áóäóò óñå÷åíû äî ñîîòâåòñòâóþùåé ãðàíèöû äèàïàçîíà. Íàïðèìåð, - 850:00:00 è 850:00:00 ïðåâðàòÿòñÿ â -838:59:59 è 838:59:59 ñîîòâåòñòâåííî.
Íåäîïóñòèìûå çíà÷åíèÿ TIME ïðåâðàòÿòñÿ â 00:00:00. Îáðàòèòå âíèìàíèå, ÷òî òàê êàê 00:00:00 ïðåäñòàâëÿåò ñîáîé ñàìîå ÷òî íè íà åñòü äîïóñòèìîå çíà÷åíèå äëÿ òèïà TIME, íåò âîçìîæíîñòè ïîíÿòü ïî ñîõðàíåííîìó â òàáëèöå çíà÷åíèþ 00:00:00, áûëî ëè ïåðâîíà÷àëüíîå çíà÷åíèå îïðåäåëåíî èìåííî êàê 00:00:00 èëè íåò.



