Funkcijos DateAdd, DateDiff ir TimeZoneOffset
Funkcija | Taikoma (kam) |
---|---|
DataPridėti | |
DataDiff | |
TimeZoneOffset |
Prideda prie skirtumo tarp datos / laiko reikšmių arba jį randa bei reikšmes konvertuoja tarp vietinio laiko ir UTC.
Aprašas
Funkcija DateAdd prie datos / laiko reikšmės prideda kokį nors vienetų skaičių. Rezultatas yra nauja datos / laiko reikšmė. Taip pat galite iš datos / laiko reikšmės kokį nors vienetų skaičių atimti, nurodydami neigiamą reikšmę.
Funkcija DateDiff pateikia skirtumą tarp dviejų datos / laiko reikšmių. Rezultatas yra sveikasis vienetų skaičius.
Abiejų funkcijų vienetai gali būti TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters arba TimeUnit.Years. Pagal numatytuosius nustatymus abi funkcijos naudoja TimeUnit.Days kaip vienetus.
Funkcija TimeZoneOffset pateikia minučių skaičių tarp vartotojo vietinio laiko ir UTC (universaliojo laiko).
Su TimeZoneOffset naudodami DateAdd, vartotojo vietinį laiką galite konveruoti į UTC (universalųjį laiką) ir atvirkščiai. TimeZoneOffset pridėjus, vietinis laikas bus konvertuotas į UTC, o jo atėmus (pridėjus neigiamą reikšmę), UTC bus konvertuotas į vietinį laiką.
Be to, daugiau informacijos ieškokite duomenų tipai Data, Laikas ir DateTime ir darbas su datomis ir laikais .
Sintaksė
DateAdd( DateTime, Addition [, Units ] )
- DateTime – būtina. Datos / laiko reikšmė, su kuria reikia atlikti operacijas.
- Addition – būtina. Skaičius vienetais (Units), pridėtinas prie DateTime.
- Units – nebūtina. Vienetų, kuriuos reikia pridėti, tipas: TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters arbaTimeUnit.Years. Jei nenurodyta,Naudojamas TimeUnit.Days .
DateDiff( StartDateTime, EndDateTime [, Units ] )
- StartDateTime – būtina. Pradinė datos / laiko reikšmė.
- EndDateTime – būtina. Galutinė datos / laiko reikšmė.
- Units – nebūtina. Vienetų, kuriuos reikia atimti, tipas: TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters arbaTimeUnit.Years. Jei nenurodyta,Naudojamas TimeUnit.Days .
TimeZoneOffset( [ DateTime ] )
- DateTime – nebūtina. Datos / laiko reikšmė, kurios skirtumą reikia pateikti. Numatyta, kad naudojami dabartiniai data / laikas.
Pavyzdžiai
Laikykite, kad visuose šiuose pavyzdžiuose dabartiniai data ir laikas yra 2013 m. liepos 15 d., 13.02 val.
Paprastoji DateAdd
Formulė | Aprašas | Rezultatas |
---|---|---|
Text( DateAdd( Now(), 3 ), "dd-mm-yyyy hh:mm" ) |
Prie dabartinių datos ir laiko pridedamos trys dienos (numatytieji vienetai). | „18-07-2013 13:02“ |
Text( DateAdd( Now(), 4, TimeUnit.Hours ), "dd-mm-yyyy hh:mm" ) |
Prie dabartinių datos ir laiko pridedamos keturios valandos. | „15-07-2013 17:02“ |
Text( DateAdd( Today(), 1, TimeUnit.Months ), "dd-mm-yyyy hh:mm" ) |
Prie dabartinės datos pridedamas vienas mėnuo be laiko, nes Today laiko komponento nepateikia. | „15-08-2013 00:00“ |
Text( DateAdd( Now(), -30, TimeUnit.Minutes ), "dd-mm-yyyy hh:mm" ) |
Iš dabartinių datos ir laiko atimama 30 minučių. | „15-07-2013 12:32“ |
Paprastoji DateDiff
Formulė | Aprašas | Rezultatas |
---|---|---|
DateDiff( Now(), DateValue("1/1/2014") ) | Grąžina skirtumą tarp dviejų vienetų, esančių numatytuosiuose TimeUnit.Days vienetuose | 170 |
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) | Grąžina skirtumą tarp dviejų reikšmių, esančių TimeUnit.Months | 6 |
DateDiff( Now(), Today(), TimeUnit.Minutes ) | Pateikia skirtumą tarp dabartinės datos / laiko ir tik dabartinės datos (be laiko) minutėmis. Kadangi Now yra vėliau nei Today, rezultatas bus neigiamas. | -782 |
Datų skirtumas su daliniais rezultatais
Funkcija DateDiff pateikia tik atimamą vienetų sveikąjį skaičių, o tikslumas nurodomas nurodytame vienete. Norėdami kuo tiksliau apskaičiuoti skirtumą, naudokite mažesnius vienetus ir tinkamai konvertuokite rezultatą, kaip nurodyta toliau pavyzdžiuose.
Formulė | Aprašymas | Rezultatas |
---|---|---|
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) | Minučių / sekundžių nepaisoma, skirtumas priklauso nuo laiko iki valandos. | 1 |
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 | Minutėmis naudojamas skirtumas, o rezultatas padalytas iš 60, kad būtų skirtumas tarp valandų. | 0.5 |
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 | Minutėmis naudojamas skirtumas, o rezultatas padalytas iš 3600, kad būtų skirtumas tarp valandų. | 0.51 |
Konvertavimas į UTC
Norėdami konvertuoti į UTC (universalųjį laiką), pridėkite konkretaus laiko TimeZoneOffset.
Pavyzdžiui, įsivaizduokite, kad dabartiniai data ir laikas Ramiojo vandenyno vasaros laiku (PDT, UTC–7) yra 2013 m. liepos 15 d., 13.02 val. Norėdami nustatyti dabartinį UTC laiką, naudokite:
- DateAdd( Now(), TimeZoneOffset(), TimeUnit.Minutes )
Numatyta, kad kaip TimeZoneOffset naudojamas dabartinis laikas, todėl jam nereikia perduoti argumento.
Norėdami matyti rezultatą, naudokite funkciją Text ir formatą dd-mm-yyyy hh:mm – bus pateikta 15-07-2013 20:02.
Konvertavimas iš UTC
Jei norite konvertuoti iš UTC, atimkite konkretaus laiko TimeZoneOffset (pridėdami neigiamą reikšmę).
Pavyzdžiui, įsivaizduokite, kad UTC data ir laikas 2013 m. liepos 15 d., 20.02 val. saugomi kintamajame pavadinimu StartTime. Norėdami koreguoti vartotojo laiko juostos laiką, naudokite:
- DateAdd( StartTime,TimeZoneOffset −( StartTime ), TimeUnit.Minutes )
Atkreipkite dėmesį į neigiamą ženklą prieš TimeZoneOffset. kad skirtumas būtų atimamas, o ne pridedamas.
Norėdami matyti rezultatą, naudokite funkciją Text ir formatą dd-mm-yyyy hh:mm – bus pateikta 15-07-2013 13:02 (jei gyvenate Ramiojo vandenyno vasaros laiku).
Atsiliepimai
https://aka.ms/ContentUserFeedback.
Jau greitai: 2024 m. palaipsniui atsisakysime „GitHub“ problemų, kaip turiniui taikomo atsiliepimų mechanizmo, ir pakeisime jį nauja atsiliepimų sistema. Daugiau informacijos žr.Pateikti ir peržiūrėti atsiliepimą, skirtą