Avatar billede wizzcat Nybegynder
25. maj 2004 - 11:21 Der er 11 kommentarer

Hvordan vises timestamps i læsbar form på på Oracle med SQL+

Jeg laver en query der bla, returnerer timestamps som feks. 38131,6232638889. Hvordan får jeg det ændret til en alm dato og klokkeslet?
Avatar billede inglenook Praktikant
25. maj 2004 - 11:26 #1
select to_char(mytime,'dd/mm/yyyy hh24:mi:ss') from mytable;

Du skal bare aendre mytime og mytable saa det passer til dig.
Avatar billede inglenook Praktikant
25. maj 2004 - 11:27 #2
Eller du kan bruge denne her. Den gaelder for hele din session:

alter session set nls_date_format = 'dd/mm/yyyy hh24:mi:ss';

Du kan saa noejes med:

select mytime from mytable;
Avatar billede wizzcat Nybegynder
25. maj 2004 - 11:28 #3
Kan ikke helt følge dig, selve DB skal ikke ændres. Jeg skal bare lave en SQL+ statement der viser nogle oplysninger samt tid, og her tiden i et fornuftigt format.
Avatar billede inglenook Praktikant
25. maj 2004 - 11:30 #4
Jep, det er lige det det goer.....

Hvad hedder din tabel og din kolonne, saa skal jeg skrive det om......?
Avatar billede inglenook Praktikant
25. maj 2004 - 11:31 #5
Jeg gaar ud fra at vi taler om et normalt dato felt ?
Avatar billede wizzcat Nybegynder
25. maj 2004 - 13:22 #6
Nej, desværre, det står såmend i et helt almindeligt number felt med precicion 16.
Avatar billede inglenook Praktikant
25. maj 2004 - 13:33 #7
Naa, det var da uheldigt. Hvad er grunden til det ? Tror ikke jeg kan hjaelpe saa, desvaerre.....
/Kent
Avatar billede wizzcat Nybegynder
25. maj 2004 - 13:42 #8
tja, det er måske ikke verdens smarteste firma der designede basen i sin tid! Men nu er den nu engang sådan. Timestampet er nu alm. nok (vist noget med antal millisekunder siden et eller andet standard starttidspunkt).
Avatar billede inglenook Praktikant
25. maj 2004 - 13:53 #9
Ja, har godt nok set det foer. Tror jeg har noget liggende paa min egen PC ang. det. Jeg skal kigge paa det senere, men jeg er sikker paa andre kan hjaelpe hurtigere. Good luck.
/Kent
Avatar billede wizzcat Nybegynder
25. maj 2004 - 14:01 #10
Håber jeg !
Avatar billede Slettet bruger
25. maj 2004 - 20:46 #11
UNIX-tiden er vist noget med antal millisekunder siden 1970.

Man kan regne med Oracle DATEs ved at lægge en værdi, regnet i dage, til eller fra.

du skal altså bruge noget a la


select
  to_char (
    to_date('1970', 'YYYY')
    + (my_strange_time_field / 1000 / 60 / 60 / 24),
    'HH24:MI:SS DD/MM-YY'
  )
from my_table;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester