Oraclen DBA:n opetusohjelma
On 1 tammikuun, 2022 by adminDate Functions and Operators.
Järjestelmän päivämäärän ja kellonajan näyttämiseksi käytä seuraavia funktioita :
CURRENT_DATE :palauttaa nykyisen päivämäärän istunnon aikavyöhykkeellä gregoriaanisen kalenterin arvona, jonka tietotyyppi on
DATE
SYSDATE :Palauttaa nykyisen päivämäärän ja kellonajan.
SYSTIMESTAMP :SYSTIMESTAMP-funktio palauttaa järjestelmän päivämäärän mukaan lukien sekunninmurto-osat ja tietokannan aikavyöhyke-
arvon. Palautustyyppi on TIMESTAMP WITH TIME ZONE.
SYSDATE Esimerkki
Katsoaksesi järjestelmän nykyisen päivämäärän ja kellonajan anna seuraava kysely.
select sysdate from dual;
SYSDATE
——-
8-AUG-03
Muodossa, jossa päivämäärä näytetään, riippuu NLS_DATE_FORMAT-parametrista.
Säädä esimerkiksi NLS_DATE_FORMAT seuraavaan muotoon
alter session set NLS_DATE_FORMAT=’DD-MON-YYYY HH:MIpm’;
Anna sitten seuraava lauseke
select sysdate from dual;
SYSDATE
——————
8-AUG-2003 03:05pm
NLS_DATE_FORMAT:n oletusasetus on DD-MON-YY
CURRENT_DATE Esimerkki
Katsoaksesi järjestelmän nykyisen päivämäärän ja kellonajan aikavyöhykkeineen käytä CURRENT_DATE-funktiota
ALTER SESSION SET TIME_ZONE = ’-4:0’;
ALTER SESSION SET NLS_DATE_FORMAT = ’DD-MON-YYYYYY HH24:MI:SS’;
SELECT SESSIONTIMEZONE, CURRENT_DATE FROM DUAL;
SESSIONTIMEZONE CURRENT_DATE
————— ——————–
-04:00 22-APR-2003 14:15:03
ALTER SESSION SET TIME_ZONE = ’-7:0’;
SELECT SESSIONTIMEZONE, CURRENT_DATE FROM DUAL;
SESSIONTIMEZONE CURRENT_DATE
————— ——————–
-07:00 22-APR-2003 09:15:33
SYSTIMESTAMP Esimerkki
Katsoaksesi järjestelmän nykyisen päivämäärän ja kellonajan sekunnin murto-osineen aikavyöhykkeineen anna seuraava lauseke
select systimestamp from dual;
SYSTIMESTAMP
——————————-
22-APR-03 08.38.55.538741 AM -07:00
PÄIVÄMÄÄRÄN MUODOSTUSMALLIT
Kääntääksesi päivämäärän eri muotoiseen merkkijonoon voit käyttää TO_CHAR-funktiota päivämäärämuodon kanssa. Jos haluat esimerkiksi nähdä nykyisen päivän, voit antaa seuraavan kyselyn
Valitse to_char(sysdate,’DAY’) ”Today” FROM DUAL;
TODAY
——-
THURSDAY
Kääntääksesi merkkiarvon, joka on muussa formaatissa kuin oletuspäivämäärämuodossa, päivämäärän arvoksi voit käyttää TO_DATE-funktiota päivämäärämuodolla päivämääräksi
Tämän ”DAY”-muotoisen mallin tapaan Oraclessa on saatavana monia muitakin päivämäärämuotomalleja. Seuraavassa taulukossa luetellaan päivämäärämuotomallit.
MUOTO |
MERKITYS |
D |
Viikonpäivä |
D |
Kuukauden päivä |
DDD |
Vuoden päivä |
PÄIVÄ |
Koko päivä esim. ’Maanantai’, ’tiistai’, ’keskiviikko’ |
PÄIVÄ |
Päivä kolmella kirjaimella esim. ’MON’, ’TUE’,’FRI’ |
W |
Kuukauden viikko |
WW |
Vuoden viikko |
MM |
Kuukausi kaksinumeroisena (1-…Jan, 2-helmikuu,…12-joulukuu) |
MON |
Kuukausi kolmella merkillä, kuten ”tammikuu”, ”helmikuu”, ”huhtikuu” |
KUUKUU |
Kokonaiskuukausi, kuten ”tammikuu”, ”Helmikuu”, ”Huhtikuu” |
RM |
Kuukausi roomalaisin kirjaimin (I-XII, I-Tammikuu, II-Helikuu,…XII-Dec) |
Q |
Kuukauden neljännes |
YY |
Vuoden kaksi viimeistä numeroa. |
VUOSI |
Kokonaisvuosi |
VUOSI |
Vuosi sanoilla kuten ”Nineteen Ninety Nine” |
HH |
Tunnit 12 tunnin muodossa |
HH12 |
Tunnit 12 tunnin muodossa |
HH24 |
Tunnit 24 tunnin muodossa |
MI |
Minuutit |
SS |
Sekunnit |
FF |
Murtosekunnit |
SSSSS |
Millisekunnit |
J |
Joulupäivän i.e Days since 1st-Jan-4712BC to till-date |
RRR |
If the year is less than 50 Assumes the year as 21ST Century. Jos vuosi on suurempi kuin 50, olettaa vuoden olevan 1900-luvulla. |
suffiksit
TH |
Palauttaa th:n, st:n, rd:n tai nd:n johtavan numeron mukaan kuten 1st , 2. 3. 4. |
SP |
Kirjoittaa johtavan numeron |
AM tai PM |
Palauttaa AM tai PM kellonajan mukaan |
SPTH |
Palauttaa kirjoitetun järjestysluvun. For. TODAY Esimerkiksi haluat nähdä kaikkien työntekijöiden palkkauspäivämäärät seuraavassa muodossa Perjantai, 8. elokuuta, 2003 Tällöin anna seuraava kysely. select to_char(hire_date,’Day, ddth Month, yyyy’) from emp; TO_DATE EsimerkkiTo_Date-funktiota käytetään merkkijonojen muuntamiseen päivämääräarvoiksi. Esimerkiksi halutaan nähdä, mikä oli päivä 15-aug-1947. Käyttämällä to_date-funktiota muunnetaan merkkijono ensin päivämääräarvoksi ja välitetään sitten tämä arvo to_char-funktiolle päivän poimimiseksi. select to_char(to_date(’15-aug-1947′,’dd-mon-yyyyyy’),’Day’) Jos haluat nähdä, kuinka monta päivää on kulunut 15-aug-1947 jälkeen, tee seuraava kysely select sysdate-to_date(’15-aug-1947′,’pp.kk.vvvv-vvvv’) from dual; Nyt haluamme nähdä, mikä päivämäärä tulee 45 päivän kuluttua select sysdate+45 from dual; ADD_MONTHSVoidaksemme nähdä, mikä päivämäärä tulee 6 kuukauden kuluttua tästä hetkestä, voimme käyttää ADD_MONTHS-funktiota Select ADD_MONTHS(SYSDATE,6) from dual; MONTHS_BETWEENKäyttääksemme MONTHS_BETWEEN-funktiota nähdäksemme, kuinka monta kuukautta on kulunut tietystä päivämäärästä. select months_between(sysdate,to_date(’15-aug-1947′)) Desimaaliarvon poistamiseksi käytä truncate-funktiota select trunc(months_between(sysdate,to_date(’15-aug-1947′))) LAST_DAYKäytä LAST_DAY-funktiota nähdäksesi tietyn päivämäärän kuukauden viimeisen päivän. select LAST_DAY(sysdate) from dual; NEXT_DAYVoidaksesi nähdä, milloin tietty päivä on tulossa seuraavaksi , käytä NEXT_DAY-funktiota. select next_day(sysdate) from dual; EXTRACTEXTRACT-päivämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämäärämÄÄRÄ -funktio poimii määritetyn päivämäärämäärämäärämäärämäärämäärämÄÄRÄ-kentän arvon päivämääräajan tai aikaväliarvon lausekkeesta. Kun uutetaan TIMEZONE_REGION tai TIMEZONE_ABBR (lyhenne), palautettava arvo on merkkijono, joka sisältää sopivan aikavyöhykkeen nimen tai lyhenteen EXTRACT-funktion syntaksi on EXTRACT ( VUOSI / KUUKAUSI / TOUKOKUU / VIIKKO / PÄIVÄ / TUNTI / MINUUTTI / AJANVYÖHYKKEEN AJANVYÖHYKKEEN PÄIVÄMÄÄRÄSTÄ) . |
Vastaa