12.07.2015 Views

Nokia Lumia 900 - InfoCity - aзербайджанский журнал о технике и ...

Nokia Lumia 900 - InfoCity - aзербайджанский журнал о технике и ...

Nokia Lumia 900 - InfoCity - aзербайджанский журнал о технике и ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Функц<strong>и</strong><strong>и</strong> <strong>о</strong>браб<strong>о</strong>тк<strong>и</strong> датыД<strong>о</strong> с<strong>и</strong>х п<strong>о</strong>р мы <strong>о</strong>бращал<strong>и</strong>сь т<strong>о</strong>льк<strong>о</strong> с ч<strong>и</strong>слам<strong>и</strong> <strong>и</strong>стр<strong>о</strong>кам<strong>и</strong>. Теперь пр<strong>и</strong>шл<strong>о</strong> время <strong>о</strong>браб<strong>о</strong>тать <strong>и</strong>нф<strong>о</strong>рмац<strong>и</strong>ют<strong>и</strong>па даты. К<strong>о</strong>нечн<strong>о</strong>, есл<strong>и</strong> уч<strong>и</strong>тыватьт<strong>о</strong>т факт, чт<strong>о</strong> мн<strong>о</strong>г<strong>и</strong>е <strong>о</strong>тчеты не<strong>о</strong>бх<strong>о</strong>д<strong>и</strong>м<strong>о</strong> п<strong>о</strong>лучатьза <strong>о</strong>пределенный пер<strong>и</strong><strong>о</strong>д времен<strong>и</strong>, т<strong>о</strong> част<strong>о</strong>та <strong>и</strong>сп<strong>о</strong>льз<strong>о</strong>ван<strong>и</strong>яфункц<strong>и</strong>й, <strong>о</strong>брабатывающ<strong>и</strong>х дату,резк<strong>о</strong> в<strong>о</strong>зрастает. Пр<strong>и</strong> раб<strong>о</strong>те с дат<strong>о</strong>й част<strong>о</strong> бываетне<strong>о</strong>бх<strong>о</strong>д<strong>и</strong>м<strong>о</strong> <strong>о</strong>бращаться к текущей дате. Для эт<strong>о</strong>г<strong>о</strong>в SQL <strong>и</strong>сп<strong>о</strong>льзуется функц<strong>и</strong>я SYSDATE, к<strong>о</strong>т<strong>о</strong>рая в<strong>о</strong>звращаетзначен<strong>и</strong>е текущей даты <strong>и</strong> времен<strong>и</strong> <strong>и</strong>збазы данных. Так<strong>и</strong>м <strong>о</strong>браз<strong>о</strong>м, текущая дата, взятаяпр<strong>и</strong> п<strong>о</strong>м<strong>о</strong>щ<strong>и</strong> SYSDATE, м<strong>о</strong>жет <strong>о</strong>тл<strong>и</strong>чаться <strong>о</strong>т с<strong>и</strong>стемн<strong>о</strong>г<strong>о</strong>времен<strong>и</strong> на вашем к<strong>о</strong>мпьютере. Чт<strong>о</strong>бы<strong>и</strong>сп<strong>о</strong>льз<strong>о</strong>вать эту функц<strong>и</strong>ю, д<strong>о</strong>стат<strong>о</strong>чн<strong>о</strong> указать еев разделе select. Она <strong>и</strong>звлечет результат, несм<strong>о</strong>тряна т<strong>о</strong>, какая табл<strong>и</strong>ца участвует в разделе FROM.В качестве пр<strong>и</strong>мера п<strong>о</strong>пр<strong>о</strong>буем узнать текущуюдату <strong>и</strong>з нашей базы данных:SELECT SYSDATEFROM dualSYSDATE10.09.2010 03:13:51Функц<strong>и</strong>я MONTHS_BETWEEN (date1, date2)<strong>и</strong>сп<strong>о</strong>льзуется для выяснен<strong>и</strong>я разн<strong>и</strong>цы времен<strong>и</strong>между двумя датам<strong>и</strong>. Она <strong>о</strong>пределяет, на ск<strong>о</strong>льк<strong>о</strong>месяцев date1 б<strong>о</strong>льше date2. В случае, есл<strong>и</strong>date1 меньше date2, т<strong>о</strong> результат будет <strong>о</strong>тр<strong>и</strong>цательным.Результат будет представлен в в<strong>и</strong>дерац<strong>и</strong><strong>о</strong>нальн<strong>о</strong>г<strong>о</strong> ч<strong>и</strong>сла, в к<strong>о</strong>т<strong>о</strong>р<strong>о</strong>м цел<strong>о</strong>е ч<strong>и</strong>сл<strong>о</strong>будет <strong>о</strong>значать к<strong>о</strong>л<strong>и</strong>честв<strong>о</strong> месяцев, а др<strong>о</strong>бнаячасть к<strong>о</strong>л<strong>и</strong>честв<strong>о</strong> дней, с<strong>о</strong>гласн<strong>о</strong> запр<strong>о</strong>шенн<strong>о</strong>мумесяцу.SELECT MONTHS_BETWEEN('25-DEC-10', '25-DEC-09') result1,MONTHS_BETWEEN('12-OCT-10', '25-DEC-09') result2,MONTHS_BETWEEN('12-AUG-08', '02-NOV-09') result3FROM dualRESULT1 12,00RESULT2 9,58RESULT3 9,58Функц<strong>и</strong>я ADD_MONTHS (date, n) пр<strong>и</strong>бавляетк<strong>о</strong>л<strong>и</strong>честв<strong>о</strong> (n) месяцев к указанн<strong>о</strong>й дате.В качестве n <strong>и</strong>сп<strong>о</strong>льзуется т<strong>о</strong>льк<strong>о</strong> цел<strong>о</strong>е ч<strong>и</strong>сл<strong>о</strong>,<strong>о</strong>днак<strong>о</strong> <strong>и</strong> <strong>о</strong>н<strong>о</strong> м<strong>о</strong>жет быть <strong>о</strong>тр<strong>и</strong>цательным,чт<strong>о</strong> п<strong>о</strong>зв<strong>о</strong>л<strong>и</strong>т <strong>о</strong>тн<strong>и</strong>мать месяцы <strong>о</strong>т <strong>и</strong>сх<strong>о</strong>дн<strong>о</strong>йдаты.Функц<strong>и</strong>я NEXT_DAY (date, 'char') п<strong>о</strong>м<strong>о</strong>гает выч<strong>и</strong>сл<strong>и</strong>тьследующ<strong>и</strong>й день недел<strong>и</strong>. Так, напр<strong>и</strong>мер,мы м<strong>о</strong>жем узнать, к<strong>о</strong>гда будет следующ<strong>и</strong>йп<strong>о</strong>недельн<strong>и</strong>к. Естественн<strong>о</strong>, вмест<strong>о</strong> char не<strong>о</strong>бх<strong>о</strong>д<strong>и</strong>м<strong>о</strong>указывать день недел<strong>и</strong> на англ<strong>и</strong>йск<strong>о</strong>мязыке, н<strong>о</strong> char также м<strong>о</strong>жет пр<strong>и</strong>н<strong>и</strong>мать <strong>и</strong> ч<strong>и</strong>сл<strong>о</strong>в<strong>о</strong>езначен<strong>и</strong>е.Функц<strong>и</strong>я LAST_DAY (date) указывает п<strong>о</strong>следн<strong>и</strong>йдень месяца аргумента.Ар<strong>и</strong>фмет<strong>и</strong>ческ<strong>и</strong>е <strong>о</strong>перац<strong>и</strong><strong>и</strong>с дат<strong>о</strong>йПр<strong>и</strong> раб<strong>о</strong>те с дат<strong>о</strong>й также м<strong>о</strong>жн<strong>о</strong> <strong>и</strong>сп<strong>о</strong>льз<strong>о</strong>ватьтак<strong>и</strong>е ар<strong>и</strong>фмет<strong>и</strong>ческ<strong>и</strong>е действ<strong>и</strong>я, как сл<strong>о</strong>жен<strong>и</strong>е<strong>и</strong> выч<strong>и</strong>тан<strong>и</strong>е:Так выглядят пр<strong>и</strong>меры <strong>и</strong>сп<strong>о</strong>льз<strong>о</strong>ван<strong>и</strong>я <strong>о</strong>перац<strong>и</strong>йDATE (+ <strong>и</strong>л<strong>и</strong> -) NUMBER <strong>и</strong> DATE (+ <strong>и</strong>л<strong>и</strong> -)NUMBER/24:SELECT SYSDATE + 5FROM dualSYSDATE+5 10.14.2010 04:13:02,00SELECT SYSDATE - 5FROM dualОперац<strong>и</strong>яDATE (+ <strong>и</strong>л<strong>и</strong> -) NUMBERDATE - DATEDATE (+ <strong>и</strong>л<strong>и</strong> -) NUMBER/24SYSDATE-5 10.04.2010 04:13:02SELECT SYSDATE + 48/24FROM dualТ<strong>и</strong>пп<strong>о</strong>лученн<strong>о</strong>г<strong>о</strong>результатаDATENUMBERDATESYSDATE+48/24 10.11.2010 04:13:02Итак, сег<strong>о</strong>дня мы рассм<strong>о</strong>трел<strong>и</strong> ч<strong>и</strong>сл<strong>о</strong>вые функц<strong>и</strong><strong>и</strong><strong>и</strong> функц<strong>и</strong><strong>и</strong> <strong>о</strong>браб<strong>о</strong>тк<strong>и</strong> даты, а также науч<strong>и</strong>л<strong>и</strong>сь:• <strong>и</strong>сп<strong>о</strong>льз<strong>о</strong>вать групп<strong>о</strong>вые функц<strong>и</strong><strong>и</strong> COUNT,MAX, MIN, SUM <strong>и</strong> AVG;• п<strong>и</strong>сать запр<strong>о</strong>сы, <strong>и</strong>сп<strong>о</strong>льзуя <strong>о</strong>пц<strong>и</strong>ю GROUP BY;• п<strong>и</strong>сать запр<strong>о</strong>сы, <strong>и</strong>сп<strong>о</strong>льзуя <strong>о</strong>пц<strong>и</strong>ю HAVING;• <strong>и</strong>сп<strong>о</strong>льз<strong>о</strong>вать вл<strong>о</strong>женные групп<strong>о</strong>выефункц<strong>и</strong><strong>и</strong>.В <strong>и</strong>т<strong>о</strong>ге <strong>о</strong>бщая схема запр<strong>о</strong>са пр<strong>и</strong><strong>о</strong>брела следующ<strong>и</strong>йв<strong>и</strong>д:SELECT * | {[DISTINCT] column | expression [[as]allias], ...}FROM table_nameWHERE condition(s)[HAVING group_condition][GROUP BY column][ORDER BY {column | expression} [asc | desc ]]Сам<strong>и</strong>р Самед<strong>о</strong>в,эксперт <strong>и</strong>нтернетресурсаSQL.az7/1263

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!