Skip to content

Archives

  • januar 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021

Categories

  • Ingen kategorier
Trend RepositoryArticles and guides
Articles

Tutorial for Oracle DBA

On januar 1, 2022 by admin
Formatering af datoer i Oracle
  • Datofunktioner og operatorer.
  • SYSDATE Eksempel
  • CURRENT_DATE Eksempel
  • SYSTIMESTAMP Eksempel
  • DATUM FORMAT MODELLER
  • TO_DATE Eksempel
  • ADD_MONTHS
  • MONTHS_BETWEEN
  • LAST_DAY
  • NEXT_DAY
  • EXTRACT

Datofunktioner og operatorer.

For at se systemets dato og klokkeslæt skal du bruge følgende funktioner :

CURRENT_DATE :returnerer den aktuelle dato i sessionens tidszone i en værdi i den gregorianske kalender af datatype
DATE
SYSDATE :returnerer den aktuelle dato og klokkeslæt.
SYSTIMESTAMP :Funktionen SYSTIMESTAMP returnerer systemdatoen, herunder brøkdele af sekunder og tidszone
for databasen. Returtypen er TIMESTAMP WITH TIME ZONE.

SYSDATE Eksempel

For at se den aktuelle systemdato og klokkeslæt skal du give følgende forespørgsel:

select sysdate from dual;
SYSDATE
——-
8-AUG-03

Det format, som datoen vises i, afhænger af parameteren NLS_DATE_FORMAT.

Sæt f.eks. NLS_DATE_FORMAT til følgende format

alter session set NLS_DATE_FORMAT=’DD-MON-YYYYYY HH:MIpm’;

Derpå giver den giver følgende anvisning

select sysdate from dual;
SYSDATE
——————
8-AUG-2003 03:05pm

Standardindstillingen for NLS_DATE_FORMAT er DD-MON-YY

CURRENT_DATE Eksempel

For at se den aktuelle systemdato og -tid med tidszone skal du bruge funktionen CURRENT_DATE

ALTER SESSION SET TIME_ZONE = ‘-4:0’;
ALTER SESSION SET NLS_DATE_FORMAT = ‘DD-MON-YYYY 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 Eksempel

For at se den aktuelle systemdato og -tid med brøkdele af sekunder med tidszone skal du angive følgende

select systimestamp from dual;
SYSTIMESTAMP
——————————-
22-APR-03 08.38.55.55.538741 AM -07:00

DATUM FORMAT MODELLER

For at oversætte datoen til en anden formatstreng kan du bruge funktionen TO_CHAR med datoformat. For at se den aktuelle dag kan du f.eks. give følgende forespørgsel

Select to_char(sysdate,’DAY’) “Today” FROM DUAL;
TODAY
——-
THURSDAY

For at oversætte en tegnværdi, som er i et andet format end standarddatumsformatet, til en datoværdi kan du bruge TO_DATE-funktionen med datumsformat til dato

Som denne “DAY”-formatmodel er der mange andre datumsformatmodeller til rådighed i Oracle. I følgende tabel er der en liste over datoformatmodeller.

FORMAT

MÅDE

D

Day of the week

DD

DD

Dag i måneden

DDD

Dag i året

DAG

Fuld dag for eks. ‘mandag’, ‘tirsdag’, ‘onsdag’

DY

Dag med tre bogstaver f.eks. ‘MON’, ‘TUE’,’FRI’

W

Uge i måneden

WW

Uge i året

MM

Måned i to cifre (1-jan, 2-Feb,…12-dec)

MON

Måned i tre tegn som “jan”, “feb”, “apr”

MONTH

Fuld måned som “januar”, “februar”, “april”

RM

Måned i romerske bogstaver (I-XII, I-Jan, II-Feb,…XII-Dec)

Q

Kvartal i måneden

YYY

De to sidste cifre i året.

ÅÅÅÅÅÅ

Fuldt år

ÅR

År i ord som “Nineteen Nineteen Ninety Nine”

HHH

Stunder i 12-timers format

HHH12

Stunder i 12-timers format

HHH24

Stunder i 24 timers format

MI

Minutter

SS

Sekunder

FF

Fraktionssekunder

SSSSSSS

Millisekunder

J

Julian Day i.e Dage siden 1. jan-4712 f.Kr. til dags dato

RR

Hvis året er mindre end 50 Antager, at året er det 21. århundrede. Hvis årstallet er større end 50, antages årstallet at være i det 20. århundrede.

suffikser

TH

Returnerer th, st, rd eller nd i henhold til det forreste tal som 1st , 2. 3. 4.

SP

Stiller det ledende tal ud

AM eller PM

Giver AM eller PM i henhold til klokkeslættet

SPTH

Giver stavet ordinalt tal tilbage. For. Eksempel Første, Fjerde

For eksempel for at se dagens dato i følgende format

Fredag, 7. marts 2014

Giv følgende anvisning

Selekter to_char(sysdate,’Day, ddth Month, yyyy’) “Today” from dual;

TODAY
————————
Fredag, 7th March, 2014

For eksempel ønsker du at se ansættelsesdatoer for alle medarbejdere i følgende format

Fredag, 8th August, 2003

Giv følgende forespørgsel.

select to_char(hire_date,’Day, ddth Month, yyyy’) from emp;

TO_DATE Eksempel

To_Date-funktionen bruges til at konvertere strenge til datoværdier. Du ønsker f.eks. at se, hvad dagen var den 15-aug-1947. Du bruger to_date-funktionen til først at konvertere strengen til en datoværdi og derefter sende denne værdi videre til to_char-funktionen for at udtrække dagen.

select to_char(to_date(’15-aug-1947′,’dd-mon-yyyy’),’Day’)
from dual;
TO_CHAR(
——–
Fredag

For at se, hvor mange dage der er gået siden 15-aug-1947, skal du give følgende forespørgsel

select sysdate-to_date(’15-aug-1947′,’dd-mon-yyyy’) from dual;

Nu ønsker vi at se, hvilken dato der vil indtræffe efter 45 dage fra nu

select sysdate+45 from dual;
SYSDATE
——-
06-JUN-2003

ADD_MONTHS

For at se, hvilken dato der vil indtræffe efter 6 måneder fra nu af, kan vi bruge ADD_MONTHS-funktionen

Selekter ADD_MONTHS(SYSDATE,6) fra dual;
ADD_MONTHS
———-
22-OCT-2003

MONTHS_BETWEEN

For at se, hvor mange måneder der er gået siden en bestemt dato, skal du bruge funktionen MONTHS_BETWEEN.
For eksempel, for at se, hvor mange måneder der er gået siden 15-aug-1947, skal du give følgende forespørgsel.

select months_between(sysdate,to_date(’15-aug-1947′))
from dual;
Months
——
616.553

For at fjerne decimalværdien skal du bruge truncate-funktionen

select trunc(months_between(sysdate,to_date(’15-aug-1947′)))
from dual;
Måneder
——
616

LAST_DAY

Hvis du vil se den sidste dato i måneden for en given dato, skal du bruge funktionen LAST_DAY.

select LAST_DAY(sysdate) from dual;
LAST_DAY
——–
31-AUG-2003

NEXT_DAY

For at se, hvornår en bestemt dag kommer næste gang, skal du bruge funktionen NEXT_DAY.
For eksempel for at se, hvornår næste lørdag kommer, skal du angive følgende forespørgsel

select next_day(sysdate) from dual;
NEXT_DAY
———–
09-AUG-2003

EXTRACT

En EXTRACT-datotidsfunktion udtrækker og returnerer værdien af et angivet datotidsfelt fra et datotids- eller intervalværdiudtryk. Når du udtrækker en TIMEZONE_REGION eller TIMEZONE_ABBR (forkortelse), er den returnerede værdi en streng, der indeholder det relevante tidszonebetegnelse eller forkortelse

Syntaksen for EXTRACT-funktionen er

EXTRACT ( YEAR / MONTH / WEEK / DAY / HOUR / MINUTE / TIMEZONE FROM DATE)
Eksempel
Det følgende demonstrerer brugen af EXTRACT-funktionen til at udtrække årstal fra den aktuelle dato.
select extract(year from sysdate) from dual;
EXTRACT
——-
2003

Skriv et svar Annuller svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

Arkiver

  • januar 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021

Meta

  • Log ind
  • Indlægsfeed
  • Kommentarfeed
  • WordPress.org
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress