Päivämäärä-, päivämäärä/aika- ja aika-arvojen käyttäminen kaavoissa
Päivämääräkaavat ovat hyödyllisiä maksujen eräpäivien, sopimusten kestojen tai muiden organisaatiosi aikaan tai päivämääriin perustuvien ominaisuuksien hallinnassa.
Vaaditut versiot
| Käytettävissä: Salesforce Classicissa ja Lightning Experiencessa |
| Käytettävissä: kaikissa versioissa |
Päivämäärille käytetään kahta tietotyyppiä: Päivämäärä ja Päivämäärä/aika. Yksi tietotyyppi, Aika, ei ole riippuvainen ajan seurantapäivämäärästä, kuten toimistoajoista. Useimpien päivämääräarvojen tietotyyppi on Päivämäärä, joka sisältää vuoden, kuukauden ja päivän. Jotkin kentät, kuten CreatedDate, ovat Päivämäärä/aika-kenttiä, eli ne sisältävät päivämääräarvon lisäksi aika-arvon (tallennetaan GMT-ajan perusteella, mutta näytetään käyttäjän aikavyöhykkeen perusteella). Päivämäärä-, Päivämäärä/aika- ja Aika-kentät muotoillaan käyttäjän paikkamäärityksen perusteella, kun niitä tarkastellaan raporteissa ja tietueiden lisätietosivuilla. Aika-arvon tarkkuus on millisekunteina. Päivämäärä/aika-arvon tarkkuus on sekunteina.
Voit käyttää Päivämäärä-, Päivämäärä/aika- ja Aika-arvoissa operaattoreita, kuten lisäys- ja vähennyslaskuja, laskeaksesi tulevia päivämääriä tai kahden päivämäärän tai kellonajan välisen keston. Jos esimerkiksi vähennät yhden päivämäärän toisesta, tuloksena oleva arvo on kahden alkuperäisen arvon eroavaisuus päivissä (tietotyyppiä Numero). Saman laskukaavan kahden Päivämäärä/aika-arvon kanssa palauttaa desimaaliarvon, joka osoittaa eroavaisuuden päivissä, tunneissa ja minuuteissa. Sama operaatio kahden Aika-arvon välillä palauttaa millisekunnin.
Jos kahden Päivämäärä/aika-arvon välinen eroavaisuus on esimerkiksi 5,52, niiden välissä on 5 päivää, 12 tuntia (0,5 päivää) ja 28 minuuttia (0,02 päivää). Voit myös lisätä numeroarvoja Päivämäärä- ja Päivämäärä/aika-arvoihin. Esimerkiksi operaation TODAY() + 3 palauttaa kolme päivää tämänhetkisen päivämäärän jälkeen. Lisätietoja ja esimerkkejä päivämäärien käyttämisestä on Esimerkkejä päivämääräkaavoista -luettelossa.
Näissä esimerkeissä päivämäärä- ja päiväys/aika-muuttujia käytetään todellisten Päivämäärä- ja Päivämäärä/aika-kenttien tai arvojen sijaan.
Pidä mielessä, että monimutkaiset päivämääräfunktiot kääntyvät tavallisesti suuremmiksi kuin teksti- tai numerokaavojen funktiot, joten kaavan kääntökoon kanssa saattaa ilmetä ongelmia.
TODAY(), NOW() ja TIMENOW()
TODAY()-funktio palauttaa tämänhetkisen päivän, kuukauden ja vuoden Päivämäärä-datatyypinä. Tämä funktio on hyödyllinen kaavoissa, joissa haluat laskea aiemmasta päivämäärästä kuluneiden päivien määrän, tulevan päivän päivämäärän tai joissa haluat vain näyttää tämänhetkisen päivämäärän.
NOW()-funktio palauttaa tämänhetkisen hetken Päivämäärä/aika-arvon. Se on hyödyllinen, kun sinun tarvitsee käyttää päivämäärien lisäksi tiettyjä kellonaikoja.
TIMENOW()-funktio palauttaa GMT-aikavyöhykkeellä arvon, joka edustaa tämänhetkistä aikaa ilman päivämäärää. Käytä tätä funktiota NOW()-funktion sijaan, jos haluat tämänhetkisen tunnin, minuutin, sekunnin tai millisekunnin. Tämä arvo soveltuu esimerkiksi työvuorojen tai kuluneen ajan seuraamiseen.
Lisätietoja Päivämäärä- ja Päivämäärä/aika-arvojen muuntamisesta toistensa välillä on kohdassa Päivämäärä/aika- ja Päivämäärä-arvojen muuntaminen toistensa välillä.
DATE()-funktio
DATE()-funktio palauttaa Päivämäärä-arvon, joka sisältää vuoden, kuukauden ja päivän. Numeeriset Y/M/D-arvot sekä YEAR()-, MONTH()- ja DAY()-funktiot ovat kelvollisia parametrejä DATE():lle. Esimerkiksi DATE( 2013, 6, 1 ) palauttaa 1. kesäkuuta 2013. Vastaavasti DATE( YEAR( TODAY() ), MONTH( TODAY() ) + 3, 1) palauttaa tämänhetkisen vuoden ensimmäisen päivän Päivämäärä-arvon, joka on kolme kuukautta tämänhetkisestä päivästä, olettaen, että päivämäärä on käypä (esimerkiksi kuukausi on väliltä 1–12).
Jos syötetyt Y/M/D-arvot johtavat virheelliseen päivämäärään, DATE() palauttaa virheen, joten virhetarkastus on tärkeä osa Päivämäärä-arvojen käyttämistä. Voit lukea lisää virheellisten päivämäärien käsittelytavoista kohdasta Esimerkkejä päivämääräkaavoista.
Päivämäärä- ja Päivämäärä/aika-arvojen muuntaminen toistensa välillä
Päivämäärä- ja Päivämäärä/aika-tietotyypit eivät ole keskenään vaihtokelpoisia, joten jos haluat suorittaa toimintoja niiden välillä, sinun täytyy muuntaa arvot samaksi tietotyypiksi. Jotkin funktiot (kuten YEAR(), MONTH() ja DAY()) toimivat myös vain Päivämäärä-arvoille, joten Päivämäärä/aika-arvot täytyy muuntaa ensin.
Käytä DATEVALUE( date/time
)-funktiota palauttaaksesi Päivämäärä/aika-arvon Päivämäärä-arvon. Jos haluat esimerkiksi noutaa vuoden Päivämäärä/aika-kentästä, käytä YEAR( DATEVALUE(
date/time ) ) )-arvoa.
Jos kaava viittaa Päivämäärä/aika-kenttään, mutta palauttaa päivämäärän, aika-komponenttia ei huomioida muuntamatta sitä käyttäjän aikavyöhykkeeksi. Tämä voi johtaa väärään päivämäärään. Jos haluat korjata käyttäjän aikavyöhykkeen, käytä DATEVALUE()-funktiota muuntaaksesi Päivämäärä/aika-kentän.
Voit muuntaa Päivämäärä-arvon Päivämäärä/aika-arvoksi käyttämällä DATETIMEVALUE( date )-funktiota. Ajaksi asetetaan klo 00.00 GMT, minkä jälkeen se muunnetaan tietuetta tarkastelevan käyttäjän aikavyöhykkeen mukaiseksi. Jos käyttäjä sijaitsee San Franciscossa, DATETIMEVALUE( TODAY() ) palauttaa arvon edellisen päivän klo 17.00 (päivän säästämisen aikana) eikä tämänhetkisen päivän klo 00.00. Lisätietoja on kohdassa Huomautus Päivämäärä/aika-arvoista ja aikavyöhykkeistä.
Päivämäärä/aika- ja Aika-arvojen muuntaminen toistensa välillä
TIMEVALUE()-funktio palauttaa Aika-datatyypin arvon muodossa ”HH:MM:SS.MS” (hours:minutes:seconds.milliseconds) käyttämällä 24 tunnin kelloa. Numeeriset H/M/S/MS-arvot ja HOUR()-, MINUTE()-, SECONDS()- ja MILLISECONDS()-funktiot ovat kelvollisia parametrejä TIMEVALUE():lle.
Käytä TIMEVALUE(value)-funktiota palauttaaksesi Päivämäärä/aika-tyypin, tekstin, yhdistämiskentän tai lausekkeen Aika-arvon. Nouda esimerkiksi aika ClosedDate Date/Time-arvosta TIMEVALUE(ClosedDate)-arvolla.
Päivämäärän ja tekstin muuntaminen toistensa välillä
Jos haluat lisätä päivämäärän osana merkkijonoa, kääri Päivämäärä-arvo TEXT()-funktioon muuntaaksesi sen tekstiksi. Jos haluat esimerkiksi palauttaa tämänhetkisen päivämäärän tekstinä, käytä:
"Today's date is " & TEXT( TODAY() )Tämä palauttaa päivämäärän muodossa "VVVV-KK-PP" eikä paikkamäärityksen mukaisessa muodossa. Voit muuttaa muotoa ottamalla ensin päivämäärän päivän, kuukauden ja vuoden ja yhdistämällä ne sitten haluamaasi muotoon. Esimerkki:
"Today's date is " & TEXT( MONTH( date ) ) & "/" & TEXT( DAY( date ) ) & "/" & TEXT( YEAR( date ) ) ) Voit myös muuntaa tekstiä Päivämäärä-arvoksi, joten voit käyttää merkkijonoarvoa muiden Päivämäärä-kenttien ja kaavojen kanssa. Haluat, että tekstisi muunnetaan muotoon VVVV-KK-PP. Käytä tätä kaavaa palauttaaksesi Päivämäärä-arvon:
DATEVALUE( "YYYY-MM-DD" )Päivämäärä/aika-arvojen ja tekstin muuntaminen toistensa välillä
Voit lisätä Päivämäärä/aika-arvoja merkkijonoon käyttämällä TEXT()-funktiota, mutta sinun täytyy olla varovainen aikavyöhykkeiden kanssa. Tarkastele esimerkiksi tätä kaavaa:
"The current date and time is " & TEXT( NOW() )Tässä kaavassa NOW() kompensoidaan GMT-aikaan. Tavallisesti NOW() muunnetaan käyttäjän aikavyöhykkeeksi, kun sitä tarkastellaan, mutta koska se on muunnettu tekstiksi, muuntamista ei tapahdu. Jos siis suoritat tämän kaavan 1. elokuuta klo 17.00 San Franciscon aikaa (GMT-7), tuloksena on "The current date and time is 2013–08–02 00:00:00Z".
Kun muunnat Päivämäärä/aika-arvon tekstiksi, kirjain "Z" liitetään sen perään osoittamaan GMT-aikaa. TEXT( date/time ) palauttaa arvon ”Z”, jos kenttä on tyhjä. Jos siis työstämäsi Päivämäärä/aika-kenttä saattaa olla tyhjä, tarkasta asia ennen tekstiksi muuntamista:
IF(
ISBLANK( date/time ),
"",
TEXT( date/time )
)Jos haluat muuntaa merkkijonon Päivämäärä/aika-arvoksi, käytä merkkijonon muodossa ”YYYY-MM-DD HH:MM:SS” välittämää DATETIMEVALUE(). Tämä metodi palauttaa Päivämäärä/aika-arvon GMT-ajassa.
Aika-arvojen ja tekstin muuntaminen toistensa välillä
Jos haluat sisällyttää ajan osana merkkijonoa, kääri Aika-arvo TEXT()-funktioon muuntaaksesi sen tekstiksi. Jos haluat esimerkiksi palauttaa tämänhetkisen kellonajan tekstinä, käytä:
"The time is " & TEXT( TIMENOW() )Tämä funktio palauttaa kellonajan muodossa ”HH:MM:SS.MS”.
Voit myös muuntaa tekstiä Aika-datatyypiksi, joten voit käyttää merkkijonoarvoa muiden Aika-kenttien ja kaavojen kanssa. Muotoile tekstisi muotoon ”HH:MM:SS.MS” käyttämällä 24 tunnin kelloa. Käytä TIMEVALUE()-funktiota:
TIMEVALUE("17:30:45.125")Huomautus Päivämäärä/aika-arvoista ja aikavyöhykkeistä
Päivämäärä- ja Päivämäärä/aika-arvot tallennetaan GMT-ajassa. Kun tietue tallennetaan, sen kenttien arvot säädetään käyttäjän aikavyöhykkeestä GMT-ajaksi ja sitten takaisin tarkastelijan aikavyöhykkeeksi, kun niitä näytetään tietueiden lisätietosivuilla ja raporteissa. Päivämäärä-arvojen muunnos ei aiheuta tätä ongelmaa, koska Päivämäärä/aika-arvon muuntaminen Päivämäärä-arvoksi johtaa Päivämäärä-arvoon.
Kun käytät Päivämäärä/aika-kenttiä ja -arvoja, ne muunnetaan kuitenkin aina GMT-ajaksi, ei käyttäjän aikavyöhykkeeksi. Vakiomuotoisen Päivämäärä/aika-kentän vähentäminen toisesta ei ole ongelma, koska molemmilla kentillä on sama aikavyöhyke. Tulokset ovat kuitenkin erilaisia, kun toinen laskennan arvoista on muunnos Teksti- tai Päivämäärä-arvosta Päivämäärä/aika-arvoon.
Oletetaan esimerkiksi, että San Franciscossa oleva käyttäjä syöttää arvon 2. elokuuta 2013 klo 00.00 mukautettuun Päivämäärä/aika-kenttään, jonka nimi on Date_Time_c. Tämä arvo tallennetaan muodossa 2013–08–02 07:00:00Z, koska aikaero PDT-ajassa on GMT-7. Käyttäjä tarkastelee tietuetta 1. elokuuta klo 00.00 PDT ja seuraava kaava suoritetaan:
Date_Time_c - NOW()Laskennassa NOW() on 2013–08–01 19:00:00Z ja vähennetään sitten 2013–08–02 07:00:00Z, jolloin odotettu tulos on 0,5 (12 tuntia).
Oletetaan, että NOW()-funktion sijaan kaava muuntaa merkkijonon "2013–08–01 12:00:00" Päivämäärä/aika-arvoksi:
Date_Time_c - DATETIMEVALUE( "2013-08-01 12:00:00" )Tässä tapauksessa DATETIMEVALUE(
“2013–08–01 12:00:00” ) on 2013–08–01 12:00:00Z ja palauttaa tuloksen 0,79167, eli 19 tuntia.
Käyttäjän aikavyöhykettä ei voi määrittää kaavassa. Jos kaikki käyttäjäsi ovat samalla aikavyöhykkeellä, voit säätää aikavyöhykkeen eroavaisuutta lisäämällä tai vähentämällä käyttäjien aikavyöhykkeen ja GMT-ajan välisen eroavaisuuden muunnettuihin arvoihisi. Koska kesäaika saattaa kuitenkin vaikuttaa aikavyöhykkeisiin ja kesäajan aloitus- ja päättymispäivät vaihtelevat vuosittain, tämän hallinta on vaikeaa kaavassa. Suosittelemme käyttämään Apex-koodia tapahtumille, jotka vaativat Päivämäärä/aika-arvojen muuntamista Teksti- tai Päivämäärä-arvoiksi tai päinvastoin.

