Päivämäärät ja ajat ovat tärkeitä, ne auttavat pitämään asiat järjestyksessä ja ovat olennainen osa mitä tahansa ohjelmistotoimintaa.
Tehokas työskentely heidän kanssaan tietokannassa voi joskus tuntua hämmentävältä, toimiiko se eri aikavyöhykkeillä, päivämäärien lisääminen / vähentäminen ja muut toiminnot.
Opi käytettävissä olevat MySQL-toiminnot, joiden avulla voit helposti käsitellä ja hallita päivämääriä / aikoja tietokannassasi.
Aikavyöhykkeiden käyttö
Jotta asiat pysyisivät vakiona, sinun tulee koskaan työskennellä vain päivämäärien / aikojen kanssa UTC-aikavyöhykkeellä. Aina kun muodostat yhteyden MySQL-tietokantaan, sinun on vaihdettava aikavyöhykkeeksi UTC, mikä voidaan tehdä seuraavalla SQL-käskyllä:
ASETA TIME_ZONE = '+0: 00'
Koska kaikki päivämäärät tallennetaan nyt UTC: hen, tiedät aina, mitä olet tekemässä, mikä tekee asioista yksinkertaisempia ja suoraviivaisempia.
Tarvittaessa voit helposti muuntaa aikavyöhyke päivämäärä / aikaleima-arvot kätevästi CONVERT_TZ () MySQL-toiminto. Sinun on ensin tiedettävä siirtymä, esimerkiksi Pohjois-Amerikan länsirannikolla PST on UTC -08: 00, joten voit käyttää:
PolyTime, uusi MakeUseOfin sovellus, helpottaa aikavyöhykkeiden vertaamista ympäri maailmaa. Tässä on mitä voit tehdä sen kanssa ja miten se toimii.
SELECT CONVERT_TZ ('2021-02-04 21:47:23', '+0: 00', '-8: 00');
Tämä johtaa 2021-02-04 13:47:23 mikä on täsmälleen oikein. Kolme argumenttia välitettiin CONVERT_TZ () ovat ensin päivämäärä / aikaleima, josta aloitat (käytä nyt () nykyiselle ajalle), toinen on aina '+0:00' koska kaikki päivämäärät pakotetaan UTC-tietokantaan, ja viimeinen on siirtymä, johon haluamme muuntaa päivämäärän.
Lisää / vähennä päivämäärät
Monta kertaa sinun on lisättävä tai vähennettävä päivämääriä, kuten jos haluat hakea viikko sitten tallennettuja tietoja tai ajoita jotain kuukauden kuluttua.
Onneksi MySQL on erinomainen DATE_ADD () ja DATE_SUB () toiminnot tekevät tästä tehtävästä erittäin helpon. Voit esimerkiksi vähentää kaksi viikkoa nykyisestä päivämäärästä SQL-käskyllä:
SELECT DATE_SUB (nyt (), väli 2 viikkoa);
Jos haluat sen sijaan lisätä kolme päivää olemassa olevaan aikaleimaan, käytä seuraavaa:
SELECT DATE_ADD ('2021-02-07 11:52:06', aikaväli 3 vrk);
Molemmat toiminnot toimivat samalla tavalla, ensimmäinen argumentti on aikaleima, josta aloitat, ja toinen argumentti on lisäys- tai vähennysväli. Toinen argumentti on aina muotoiltu samalla sanalla välein seuraa numeroarvo ja itse aikaväli, joka voi olla jokin seuraavista: sekunti, minuutti, tunti, päivä, viikko, kuukausi, vuosineljännes, vuosi.
Toisessa esimerkissä, jos haluat noutaa kaikki kirjautumisen, joka on tapahtunut viimeisten 34 minuutin aikana, voit käyttää SQL-käskyä, kuten:
SELECT * FROM kirjautumisista WHERE login_date> = DATE_SUB (nyt (), aikaväli 45 minuuttia);
Kuten näette, tämä noutaisi kaikki tietueet kirjautumiset taulukon sisäänkirjautumispäivä on suurempi kuin nykyinen aika miinus 45 minuuttia tai toisin sanoen viimeiset 45 minuuttia.
Hanki ero päivämäärien välillä
Joskus sinun on saatava selville, kuinka paljon aikaa on kulunut kahden päivämäärän välillä. Voit helposti saada kahden päivän välillä olevien päivien lukumäärän DATEDIFF toiminto, kuten alla oleva SQL-käsky:
SELECT DATEDIFF (nyt (), '2020-12-15');
DATEDIFF funktio ottaa kaksi argumenttia, jotka molemmat ovat päivämäärä / aikaleimat ja antaa niiden välisten päivien määrän. Yllä oleva esimerkki näyttää päivien määrän, joka on kulunut 15. joulukuuta 2020 lähtien tänään.
Saadaksesi sekuntimäärän kahden päivämäärän välillä, TO_SECONDS () toiminto voi olla hyödyllinen, esimerkiksi:
SELECT TO_SECONDS (nyt ()) - TO_SECONDS ('2021-02-05 11:56:41');
Tämä johtaa sekuntien määrään kahden annetun päivämäärän välillä.
Pura segmentit päivämääristä
On olemassa useita MySQL-toimintoja, joiden avulla voit helposti purkaa tietyt segmentit päivämääristä, kuten jos haluat vain kuukauden, vuoden päivän tai tunnin. Tässä on muutama esimerkki tällaisista toiminnoista:
VALITSE KUUKAUSI ('2021-02-11 15:27:52');
VALITSE TUNTI (nyt ());
VALITSE PÄIVÄVUOSI ('2021-07-15 12:00:00');
Yllä olevat SQL-lauseet johtavat 02, kuluva tunti ja 196 koska 15. syyskuuta on vuoden 196. päivä. Tässä on luettelo kaikista käytettävissä olevista päivämäärän poimintatoiminnoista, joista jokaisella on vain yksi argumentti, josta päivämäärä puretaan:
- TOINEN ()
- MINUTE ()
- TUNTI ()
- PÄIVÄ ()
- VIIKKO () - Numero 0-52, joka määrittää viikon sisällä vuoden.
- KUUKAUSI ()
- VUOSINELJÄNNES () - Numerot 1-4, jotka määrittelevät vuosineljänneksen.
- YEAR ()
- DAYOFYEAR () - Vuoden päivä (esim. 15. syyskuuta = 196).
- LAST_DAY () - tietyn kuukauden viimeinen päivä.
- PÄIVÄYS () - päivämäärä VVVV-KK-PP-muodossa ilman aikaa.
- TIME () Aika HH: II: SS-muodossa ilman päivämäärää.
- TO_DAYS () - Päivien lukumäärä jKr. 0 jälkeen.
- TO_SECONDS () - sekuntien määrä jKr. 0 jälkeen.
- UNIX_TIMESTAMP () - sekuntien määrä aikakauden (1. tammikuuta 1970) jälkeen
Jos esimerkiksi haluat ehkä hakea vain kuukauden ja vuoden, jonka kaikki käyttäjät ovat luoneet, voit käyttää SQL-käskyä, kuten:
SELECT-tunnus, MONTH (luotu_a), YEAR (luotu_a) käyttäjiltä;
Tämä noutaisi kaikki tietueet käyttäjille taulukko ja näytä tunnus, kuukausi ja vuosi, jolloin kukin käyttäjä luotiin.
Tietueiden ryhmittely päivämääräjaksojen mukaan
Yksi erinomainen päivämäärätoimintojen käyttö on kyky ryhmitellä tietueet päivämääräjaksojen mukaan käyttämällä RYHMÄ SQL-lauseidesi sisällä. Ehkä haluat esimerkiksi kerätä kaikkien vuoden 2020 tilausten kokonaismäärän ryhmiteltyinä kuukausittain. Voit käyttää SQL-käskyä, kuten:
VALITSE KUUKAUSI (luotu_tat), SUMMA (määrä) Tilauksista MISSÄ luotiin_VÄLILLÄ '2020-01-01 00:00:00' JA '2020-12-31 23:59:59' RYHMÄ KUUKAUDEN JÄLKEEN (luotu_at);
Tämä noutaisi kaikki vuodelle 2020 tehdyt tilaukset, ryhmiteltäisiin ne luontikuukauden mukaan ja palautaisivat 12 tietuetta, joista käy ilmi tilattu kokonaismäärä vuoden jokaisessa kuukaudessa.
Huomaa, että indeksin suorituskyvyn parantamiseksi on aina parasta välttää päivämäärätoimintojen, kuten VUOSI () SQL-lauseiden WHERE-lauseessa ja käytä sen sijaan VÄLILLÄ operaattorin yllä olevan esimerkin mukaisesti.
Älä koskaan sekoita päivämääriä uudelleen
Yllä olevan tiedon avulla voit nyt työskennellä tehokkaasti, kääntää ja suorittaa toimintoja päivämäärinä ja aikoina monissa käyttötapauksissa.
Muista käyttää aina UTC: tä työskennellessäsi päivämäärien kanssa yksinkertaisuuden vuoksi ja käytä yllä olevia vinkkejä tehokkaaseen hallintaan päivämäärät ohjelmistossasi, olipa kyse sitten yksinkertaisten laskelmien suorittamisesta tai raporttien helposti vetämisestä päivämäärän mukaan ryhmiteltyinä jaksoja.
Jos olet hieman uusi SQL-palvelussa, tarkista nämä välttämättömät SQL-komennot auttaa parantamaan SQL-käyttöäsi.
Tässä oppaassa tarkastellaan ammattiraportin osia ja tarkastellaan asiakirjan rakennetta, muotoilua ja viimeistelyä Microsoft Wordissa.
- Määrittelemätön
Tilaa uutiskirjeemme
Liity uutiskirjeeseemme, jossa on teknisiä vinkkejä, arvosteluja, ilmaisia e-kirjoja ja erikoistarjouksia!
Vielä yksi askel !!!
Vahvista sähköpostiosoitteesi juuri lähettämässäsi sähköpostiviestissä.