Tulosta      Avaa käytönaikaisen ohjeen PDF-versio


Edellinen aihe

Seuraava aihe

Kalenterin Aika/Päivämäärä-toiminnot.

Kalenterin aika/päivämäärä -toiminnot käsittelevät tietoa päivämäärän, kellonajan ja aikaleiman tietotyypeissä. (Aikaleiman tietotyyppi on päivämäärän ja kellonajan yhdistelmä.)

Kaikki päivämäärätoiminnot noudattavat ISO 8601 -standardia. Tämä vaikuttaa erityisesti sellaisiin toimintoihin kuin Week_Of_Year ja Week_Of_Quarter, joissa vuoden ensimmäinen viikko on ensimmäinen kokonainen viikko, johon sisältyy yksi torstai. Lisätietoja päivämäärätoimintojen laskennasta on ISO 8601 -standardissa.

Current_Date

Palauttaa senhetkisen päivämäärän. Järjestelmä käyttää tietokoneen päivämäärää. Arvoon ei sisälly kellonaikaa.

Syntaksi:

CURRENT_DATE

Current_Time

Palauttaa senhetkisen kellonajan. Järjestelmä käyttää tietokoneen kellonaikaa. Arvo ei sisällä päivämääräosaa.

Huomautus: Tämä toiminto käyttää raportin ajon aikaa. Toiminnon käyttö analyysien aihealueessa estää raporttien tallennuksen välimuistiin, mikä heikentää suorituskykyä.

Syntaksi:

CURRENT_TIME (n)

jossa:

n

Kokonaisluku, joka määrittää niiden desimaalien lukumäärän, joilla sekuntien murto-osat esitetään. Tämä argumentti on valinnainen. Jos sitä ei määritetä, toiminto käyttää oletusarvoista tarkkuutta.

Current_TimeStamp

Palauttaa senhetkisen aikaleiman. Järjestelmä käyttää tietokoneen aikaleimaa.

Huomautus: Tämä toiminto käyttää raportin ajon aikaa. Toiminnon käyttö analyysien aihealueessa estää raporttien tallennuksen välimuistiin, mikä heikentää suorituskykyä.

Syntaksi:

CURRENT_TIMESTAMP (n)

jossa:

n

Kokonaisluku, joka määrittää niiden desimaalien lukumäärän, joilla sekuntien murto-osat esitetään. Tämä argumentti on valinnainen. Jos sitä ei määritetä, toiminto käyttää oletusarvoista tarkkuutta.

Day_Of_Quarter

Palauttaa annettua päivämäärää vuosineljänneksen päivänä vastaavan luvun (välillä 1-92).

Syntaksi:

DAY_OF_QUARTER (date_expression)

jossa:

date_expression

Mikä tahansa lauseke, joka tulkitaan päivämääräksi.

DayName

Palauttaa annettua päivämäärää vastaavan viikonpäivän (englanniksi).

Syntaksi:

DAYNAME (date_expression)

jossa:

date_expression

Mikä tahansa lauseke, joka tulkitaan päivämääräksi.

DayOfMonth

Palauttaa annettua päivämäärää kuukauden päivänä vastaavan luvun.

Syntaksi:

DAYOFMONTH (date_expression)

jossa:

date_expression

Mikä tahansa lauseke, joka tulkitaan päivämääräksi.

DayOfWeek

Palauttaa luvun välillä 1–7. Tämä luku vastaa annetun päivämäärän viikonpäivää. Luku 1 vastaa sunnuntaita ja luku 7 lauantaita.

Syntaksi:

DAYOFWEEK (date_expression)

jossa:

date_expression

Mikä tahansa lauseke, joka tulkitaan päivämääräksi.

DayOfYear

Palauttaa annettua päivämäärää vuoden päivänä vastaavan luvun (välillä 1 - 366).

Syntaksi:

DAYOFYEAR (date_expression)

jossa:

date_expression

Mikä tahansa lauseke, joka tulkitaan päivämääräksi.

Hour

Palauttaa annetun kellonajan tuntia vastaavan luvun (välillä 0 - 23). Luku 0 vastaa keskiyötä ja luku 23 kellonaikaa 23.

Syntaksi:

HOUR (time_expression)

jossa:

time_expression

Mikä tahansa lauseke, joka tulkitaan ajaksi.

Minute

Palauttaa annetun kellonajan minuutteja vastaavan luvun (välillä 0 - 59).

Syntaksi:

MINUTE (time_expression)

jossa:

time_expression

Mikä tahansa lauseke, joka tulkitaan ajaksi.

Month

Palauttaa annetun päivämäärän kuukautta vastaavan luvun (välillä 1 - 12).

Syntaksi:

MONTH (date_expression)

jossa:

date_expression

Mikä tahansa lauseke, joka tulkitaan päivämääräksi.

Month_Of_Quarter

Palauttaa annetun päivämäärän kuukautta vuosineljänneksen kuukautena vastaavan luvun (välillä 1 - 3).

Syntaksi:

MONTH_OF_QUARTER (date_expression)

jossa:

date_expression

Mikä tahansa lauseke, joka tulkitaan päivämääräksi.

MonthName

Palauttaa annetun päivämäärän kuukauden nimen (englanniksi).

Syntaksi:

MONTHNAME (date_expression)

jossa:

date_expression

Mikä tahansa lauseke, joka tulkitaan päivämääräksi.

Now

Palauttaa senhetkisen aikaleiman. NOW-toiminto on sama kuin CURRENT_TIMESTAMP-toiminto.

Huomautus: Tämä toiminto käyttää raportin ajon aikaa. Toiminnon käyttö analyysien aihealueessa estää raporttien tallennuksen välimuistiin, mikä heikentää suorituskykyä.

Syntaksi:

NOW ()

Quarter_Of_Year

Palauttaa annetun päivämäärän vuosineljännestä vastaavan luvun (välillä 1 - 4).

Syntaksi:

QUARTER_OF_YEAR (date_expression)

jossa:

date_expression

Mikä tahansa lauseke, joka tulkitaan päivämääräksi.

Second

Palauttaa annetun kellonajan sekunteja vastaavan luvun (välillä 0 - 59).

Syntaksi:

SECOND (time_expression)

jossa:

time_expression

Mikä tahansa lauseke, joka tulkitaan ajaksi.

TimestampAdd

TimestampAdd-toiminto liittää tietyn määrän aikayksikköjä annettuun aikaleimaan. Toiminto palauttaa yhden aikaleiman.

Syntaksi:

TimestampAdd (interval, integer_expression, timestamp_expression)

jossa:

interval

Annettu aikayksikkö. Sallittuja arvoja ovat:

SQL_TSI_SECOND

SQL_TSI_MINUTE

SQL_TSI_HOUR

SQL_TSI_DAY

SQL_TSI_WEEK

SQL_TSI_MONTH

SQL_TSI_QUARTER

SQL_TSI_YEAR

integer_expression

Mikä tahansa ilmaus, joka on tulkittavissa kokonaisluvuksi. Tämä on lisättävien ajanjaksojen lukumäärä.

timestamp_expression

Laskelman pohjana käytetty aikaleima.

Mikäli syötteeksi annetaan tyhjä kokonaisluku-ilmaus tai tyhjä aikaleima-ilmaus, saadaan tyhjä palautusarvo.

Yksinkertaisimmassa tapauksessa tämä toiminto vain lisää annetun kokonaislukuarvon (integer_expression) aikaleiman oikeaan osaan (määräytyy annetun ajanjakson perusteella). Viikon lisäys tarkoittaa seitsemän päivän lisäystä ja vuosineljänneksen lisäys kolmen kuukauden lisäystä. Mikäli annettu kokonaislukuarvo on negatiivinen, arvo vähennetään aikaleiman oikeasta osasta (jolloin liikutaan ajassa taaksepäin).

Mikäli kyseiseen aikaleiman osaan näyttäisi olevan tulossa liian suuri luku (yli 60 sekuntia, yli 24 tuntia, yli 12 kuukautta jne), lisätään sopiva luku seuraavaan osaan. Kun aikaleimaan lisätään esimerkiksi päiviä, toiminto ottaa ylimenevää osaa käsitellessään huomioon kyseisen kuukauden päivien lukumäärän (myös karkausvuodet, jolloin helmikuussa on 29 päivää).

Kun aikaleimaan lisätään kuukausia, toiminto tarkistaa, että tuloksena saatavan aikaleiman päivää kuvaavassa osiossa on oikea luku. Jos esimerkiksi päivämäärään 31-05-2000 lisätään 1 kuukausi, tuloksena ei ole 31-6-2000, koska kesäkuussa ei ole 31 päivää. Toiminto muuttaa päivän kuukauden viimeiseksi päiväksi, tässä tapauksessa 30-6-2000.

Samantapainen ongelma muodostuu, kun lisätään vuosia aikaleimaan, jonka kuukausi on helmikuu ja päivä 29 (toisin sanoen karkausvuoden helmikuun viimeinen päivä). Ellei tuloksena saatava aikaleima osu karkausvuodelle, toiminto muuttaa päiväosan luvuksi 28.

Seuraavassa esimerkkejä TimestampAdd-toiminnon käytöstä:

Seuraavassa esimerkkikoodissa pyydetään lisäämään 3 päivää aikaleimaan 27-02-2000 14:30:00. Koska 2000 on karkausvuosi, palautetaan aikaleima 01-03-2000 14:30:00.

TimestampAdd(SQL_TSI_DAY, 3, TIMESTAMP‘2000-02-27 14:30:00’)

Seuraavassa esimerkkikoodissa pyydetään lisäämään 7 kuukautta aikaleimaan 31-07-1999 0:0:0. Tuloksena on aikaleima 29-02-2000 00:00:00. Huomaa, että päiväosa vähenee luvuksi 29, koska helmikuu on lyhyempi kuukausi.

TimestampAdd(SQL_TSI_MONTH, 7, TIMESTAMP‘1999-07-31 00:00:00’)

Seuraavassa esimerkkikoodissa pyydetään lisäämään 25 minuuttia aikaleimaan 31-07-2000 23:35:00. Tuloksena on aikaleima 01-08-2000 00:00:00. Huomaa, että ylimenevä osa käsitellään muuttamalla kuukautta kuvaavaa osaa.

TimestampAdd(SQL_TSI_MINUTE, 25, TIMESTAMP‘2000-07-31 23:35:00’)

TimeStampDiff

TimeStampDiff -toiminto palauttaa annettujen aikayksiköiden määrän kahden aikaleiman välillä.

Syntaksi:

TimestampDiff (interval, timestamp_expression1, timestamp_expression2)

jossa:

interval

Annettu aikayksikkö. Sallittuja arvoja ovat:

SQL_TSI_SECOND

SQL_TSI_MINUTE

SQL_TSI_HOUR

SQL_TSI_DAY

SQL_TSI_WEEK

SQL_TSI_MONTH

SQL_TSI_QUARTER

SQL_TSI_YEAR

timestamp_expression1

Seuraavasta aikaleimasta vähennettävä aikaleima.

timestamp_expression2

Seuraava aikaleima. timestamp_expression1 vähennetään tästä aikaleimasta näiden aikaleimojen välisen eron määrittämiseksi.

Mikäli syötteenä on tyhjä aikaleima-ilmaus, myös palautusarvo on tyhjä.

Toiminto määrittää ensin, mikä aikaleiman osa vastaa annettua aikayksikköä. Esimerkiksi SQL_TSI_DAY vastaa päivää kuvaavaa osaa ja SQL_TSI_MONTH vastaa kuukautta kuvaavaa osaa.

Seuraavaksi toiminto laskee suurempien aikayksiköiden perusteella, kuinka monta annettua aikayksikköä kussakin aikaleimassa on. Jos annettu aikayksikkö on esimerkiksi kuukausi, toiminto laskee kummankin aikaleiman kuukausien kokonaismäärän laskemalla yhteen vuosia kuvaavan osan kerrottuna kahdellatoista ja kuukausia kuvaavan osan.

Lopulta toiminto vähentää ensimmäisen aikaleiman aikayksiköiden kokonaismäärän toisen aikaleiman aikayksiköiden kokonaismäärästä.

Laskiessaan erotusta päivissä toiminto katkaisee molemmista aikaleimalausekkeista saadut aika-arvot ja vähentää sitten päivämääräarvot.

Laskiessaan erotusta viikoissa toiminto laskee ensin erotuksen päivissä ja jakaa seitsemällä ennen pyöristystä.

Laskiessaan erotusta vuosineljänneksissä toiminto laskee ensin erotuksen kuukausissa ja jakaa kolmella ennen pyöristystä.

Laskiessaan erotusta vuosissa toiminto laskee ensin erotuksen kuukausissa ja jakaa kahdellatoista ennen pyöristystä.

Seuraavassa esimerkkejä TimestampDiff-toiminnon käytöstä ja palautusarvoista:

Seuraavassa esimerkkikoodissa pyydetään aikaleimojen 31-07-1998 23:35:00 ja 01-04-2000 14:24:00 välistä erotusta päivissä. Se palauttaa arvon 610. Huomaa, että mukaan tulee yksi päivä lisää, koska vuosi 2000 on karkausvuosi.

TimestampDIFF(SQL_TSI_DAY, TIMESTAMP‘1998-07-31 23:35:00’, TIMESTAMP‘2000-04-01 14:24:00’)

Week_Of_Quarter

Palauttaa luvun (välillä 1 - 13), joka vastaa sitä, monesko kuluvan vuosineljänneksen viikko annettuna päivämääränä on.

Syntaksi:

MONTH_OF_QUARTER (date_expression)

jossa:

date_expression

Mikä tahansa lauseke, joka tulkitaan päivämääräksi.

Week_Of_Year

Palauttaa luvun (välillä 1 - 53), joka vastaa sitä, monesko kuluvan vuoden viikko annettuna päivämääränä on.

Syntaksi:

WEEK_OF_YEAR (date_expression)

jossa:

date_expression

Mikä tahansa lauseke, joka tulkitaan päivämääräksi.

Vuosi

Palauttaa annetun päivämäärän vuosiluvun.

Syntaksi:

YEAR (date_expression)

jossa:

date_expression

Mikä tahansa lauseke, joka tulkitaan päivämääräksi.

Esimerkki:

YEAR (CURRENT_DATE)


Julkaistu Elokuu 2018 Copyright © 2005, 2018, Oracle ja/tai sen tytär-, sisar- tai osakkuusyhtiöt. Kaikki oikeudet pidätetään. Legal Notices.