Датуми и време су важни, помажу у одржавању ствари и саставни су аспект сваке софтверске операције.

Ефикасан рад с њима у бази података понекад може изгледати збуњујуће, било да се ради у различитим временским зонама, додавањем / одузимањем датума и другим операцијама.

Научите разне МиСКЛ функције доступне за лако руковање датумима / временима у вашој бази података и управљање њима.

Рад са временским зонама

Да бисте помогли да ствари буду стандардизоване, требало би да радите само са датумима / временима у УТЦ временској зони. Сваки пут када успоставите везу са МиСКЛ базом података, требали бисте пребацити временску зону на УТЦ, што се може урадити са следећим СКЛ изразом:

СЕТ ТИМЕ_ЗОНЕ = '+0: 00'

Пошто ће сви датуми бити сачувани у УТЦ, увек знате са чим радите, чинећи ствари једноставнијим и директнијим.

Када је потребно можете лако претвори временску зону било које вредности датума / времена са приручником ЦОНВЕРТ_ТЗ () МиСКЛ функција. Прво морате да знате помак, на пример, ПСТ на западној обали Северне Америке је УТЦ -08: 00, па бисте могли да користите:

instagram viewer
ПолиТиме је најбоља апликација за претварање временских зона за више градова одједном

ПолиТиме, нова апликација компаније МакеУсеОф, олакшава поређење временских зона широм света. Ево шта можете учинити с тим и како то функционише.

СЕЛЕЦТ ЦОНВЕРТ_ТЗ ('2021-02-04 21:47:23', '+0: 00', '-8: 00');

Ово резултира у 2021-02-04 13:47:23 што је тачно тачно. Три аргумента прослеђена ЦОНВЕРТ_ТЗ () су прва ознака датума / времена с којом започињете (користите сада () за тренутно време), друга ће увек бити '+0:00' пошто су сви датуми приморани на УТЦ у бази података, а последњи је помак у који желимо претворити датум.

Сабирање / одузимање датума

Много пута треба да додате или одузмете датуме, на пример ако требате да преузмете записе од пре недељу дана или заказати нешто за месец дана.

Срећом МиСКЛ има одличне ДАТЕ_АДД () и ДАТЕ_СУБ () функције чинећи овај задатак изузетно једноставним. На пример, помоћу СКЛ израза можете одузети две недеље од тренутног датума:

СЕЛЕЦТ ДАТЕ_СУБ (сада (), интервал 2 недеље);

Ако бисте уместо тога желели да додате три дана постојећој временској ознаци, користили бисте:

СЕЛЕЦТ ДАТЕ_АДД ('2021-02-07 11:52:06', интервал 3 дана);

Обе функције раде исто, први аргумент је временска ознака са којим започињете, а други аргумент интервал за сабирање или одузимање. Други аргумент је увек форматиран на исти начин почев од речи интервал након чега следи нумеричка вредност и сам интервал, који може бити било који од следећих: секунда, минут, сат, дан, недеља, месец, квартал, година.

Као други пример, ако желите да преузмете све пријаве које су се догодиле у последња 34 минута, могли бисте да користите СКЛ израз као што је:

СЕЛЕЦТ * ФРОМ пријаве ВХЕРЕ логин_дате> = ДАТЕ_СУБ (сада (), интервал 45 минута);

Као што видите, ово би преузело све записе из пријаве табела са датумом пријаве већим од тренутног времена минус 45 минута, или другим речима, протеклих 45 минута.

Добијте разлику између датума

Понекад треба да сазнате колико је времена протекло између два датума. Можете лако добити број дана између два различита датума помоћу ДАТЕДИФФ функција, као што је СКЛ наредба у наставку:

ОДАБЕРИТЕ ДАТЕДИФ (сада (), '2020-12-15');

Тхе ДАТЕДИФФ функција узима два аргумента, оба су датумски / временски жигови и даје број дана између њих. Горњи пример ће приказати број дана протеклих од 15. децембра 2020. до данас.

Да бисте добили број секунди између два датума, ТО_СЕЦОНДС () функција може добро доћи, на пример:

СЕЛЕЦТ ТО_СЕЦОНДС (нов ()) - ТО_СЕЦОНДС ('2021-02-05 11:56:41');

То ће резултирати бројем секунди између два наведена датума.

Издвоји сегменте из датума

Постоје разне МиСКЛ функције које вам омогућавају да лако издвојите одређене сегменте из датума, на пример ако желите само месец, дан у години или сат. Ево неколико примера таквих функција:

СЕЛЕЦТ МОНТХ ('2021-02-11 15:27:52');
СЕЛЕЦТ ХОУР (сада ());
ОДАБЕРИТЕ ДАИОФИЕАР ('2021-07-15 12:00:00');

Горе наведени СКЛ изрази би резултирали 02, тренутни сат и 196 како је 15. септембра 196. дан у години. Ево листе свих доступних функција за издвајање датума, од којих свака узима само један аргумент, а датум се издваја из:

- ДРУГИ ()
- МИНУТЕ ()
- САТ ()
- ДАН ()
- СЕДМИЦА () - Број 0 - 52 који дефинише недељу у години.
- МЕСЕЦ ДАНА()
- КВАРТАЛ () - Број 1 - 4 који дефинише квартал године.
- ГОДИНА ()
- ДАИОФИЕАР () - Дан у години (нпр. 15. септембра = 196).
- ЛАСТ_ДАИ () - Последњи дан у датом месецу.
- ДАТУМ () - Датум у формату ГГГГ-ММ-ДД без времена.
- ВРИЈЕМЕ () Вријеме у ХХ: ИИ: СС формату без датума.
- ТО_ДАИС () - Број дана од 0.
- ТО_СЕЦОНДС () - Број секунди од 0.
- УНИКС_ТИМЕСТАМП () - Број секунди од епохе (1. јануара 1970)

На пример, ако сте можда желели да преузмете само месец и годину у којима су сви корисници створени, можете да користите СКЛ израз као што је:

СЕЛЕЦТ ИД, МОНТХ (цреатед_ат), ИЕАР (цреатед_ат) ФРОМ корисника;

Ово би преузело све записе у корисника табела и приказати ИД #, месец и годину у којима је сваки корисник створен.

Груписање записа по датумском периоду

Одлична употреба функција датума је могућност груписања записа по датумском периоду ГРУПА ОД у оквиру ваших СКЛ израза. На пример, можда желите да повучете укупан износ свих поруџбина у 2020. груписаних по месецима. Можете користити СКЛ израз као што је:

ОДАБЕРИТЕ МЕСЕЦ (креиран_ат), ЗБИР (износ) ИЗ налога НЕГДЕ креиран_између '2020-01-01 00:00:00' И '2020-12-31 23:59:59' ГРУПА ПО МЕСЕЦУ (цреатед_ат);

Тиме би се преузеле све поруџбине постављене у 2020. години, груписале би се према месецу када су створене и вратило 12 записа који приказују укупан износ нарученог сваког месеца у години.

Имајте на уму да је за боље перформансе индекса увек најбоље избегавати коришћење функција датума као што су ГОДИНА () унутар клаузуле ВХЕРЕ СКЛ израза, и уместо тога користите ИЗМЕЂУ као што је приказано у горњем примеру.

Никада се више не збуните датумима

Користећи горње знање, сада можете ефикасно радити, преводити и изводити операције у датумима и временима у широком спектру случајева.

Не заборавите да увек користите УТЦ када радите са датумима ради једноставности и користите горње савете за ефикасно управљање датуме у вашем софтверу, било да се ради о једноставним прорачунима или лаком повлачењу извештаја груписаних по датумима периода.

Ако сте донекле нови у СКЛ-у, обавезно их погледајте битне СКЛ наредбе како бисте побољшали употребу СКЛ-а.

Емаил
Како створити професионалне извештаје и документе у програму Мицрософт Ворд

Овај водич испитује елементе професионалног извештаја и прегледава структурирање, обликовање и финализацију вашег документа у програму Мицрософт Ворд.

Повезане теме
  • Неодређено
О аутору
Матт Дизак (Објављено 16 чланака)Више од Матта Дизака

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, прегледе, бесплатне е-књиге и ексклузивне понуде!

Још један корак…!

Молимо потврдите своју адресу е-поште у е-поруци коју смо вам управо послали.

.