Oracle lucrează cu date în oracol

Când afișați informații despre ora sau datele din Oracle, este esențială ce versiune a serverului pe care îl utilizați. De exemplu, începând cu versiunea 9, a devenit posibil să se reprezinte intervalele de timp și de timp utilizând tipurile de date ANSI SQL. De exemplu, marca de timp și intervalul. Versiunile anterioare au folosit tipul de date de date. cu o precizie de o secundă și intervale de timp ca numere (unde 1 = o zi).







Dacă utilizați o versiune mai nouă a serverului Oracle. este recomandat să utilizați noi tipuri de date în aplicațiile dvs., cu excepția cazului în care intenționați să utilizați aplicația pe servere care nu acceptă astfel de tipuri.

Pentru a ilustra, vom folosi un exemplu simplu de înregistrare a utilizatorilor în sistem, de exemplu, pe anumite forumuri. Pentru a face acest lucru, creați un tabel și completați-l cu date:


Acum, selectăm utilizatorii care s-au înregistrat în ultima zi:

sau, în funcție de setările naționale

Pentru a seta explicit formatul datei, rescrieți propoziția astfel:

În plus, la alegere, puteți schimba intervalul, măriți sau micșorându-l, în funcție de sarcină. De exemplu:

Puteți specifica în mod explicit formatul pentru data și ora:

Ca rezultat, vedem, să spunem ușor, formatări indigestibile. Reparăm situația prin rescrierea instrucțiunii SQL astfel:







Unele lucruri ar trebui să fie cunoscute, iar pentru simplitate voi arăta prin exemple:

Calculul intervalelor de timp poate fi o sarcină destul de neplăcută, deoarece în SQL standard nu este posibil să se facă referire la valoarea acestei coloane din linia anterioară din raport. Este ușor de făcut în orice limbaj de programare, cum ar fi C #, Visual Basic, Java sau Delphi, care poate citi baza de date și apoi o faci singur fără a recurge la SQL.

Adăugați câteva linii la masa noastră cu o listă de utilizatori:

De exemplu, suntem interesați de durata medie dintre înregistrarea utilizatorilor:

Noi rescriem interogarea cu join:

Pentru a vă asigura unicitatea, utilizați coloana USER_ID. Deoarece data și ora înregistrării nu oferă unicitate, deoarece Este posibilă înregistrarea simultană a doi utilizatori.

Acum avem o serie de coloane cu date care reprezintă un anumit raport și putem calcula intervalele:

Intervalul pentru fiecare coloană returnează ziua, orele, minutele și secundele. Pentru aceste puncte de timp, puteți calcula intervalul mediu. Pentru aceasta, scriem următoarea interogare:

Oracle a dat o eroare. Ce sa întâmplat? Din păcate, Oracle nu era suficient de inteligent pentru a calcula valoarea medie a intervalului de timp. Și indiferent de cât de triste, nu a fost la fel de ușor cum ar fi calcularea valorii medii.

Dacă aveți o dorință, atunci puteți rescrie instrucțiunea SQL în această formă:

Dacă doriți să utilizați astfel de solicitări sălbatice, vă rog, dar în acest caz este mai util să creați o vizualizare:

Și acum, puteți calcula valoarea medie în minute:

Link-uri conexe







Articole similare

Trimiteți-le prietenilor: