De: Jeffrey Yao | Actualizat: 2019-08-06 | Comentarii (3) | Conexe: Mai > Date
Probleme
Deoarece SQL Server 2012, avem o nouă funcție calledFORMAT(), este foarte puternic în formatarea datetime și valori numerice,ce se folosește de această funcție pentru a fi utilizate în fiecare zi DBA munca?
soluție
SQL Server T-SQL FORMAT() funcția este în esență o funcție de sistem de tip CLR,și, ca atare,.,Regulile de formatare netă se aplică acestei funcții. Această funcție returnsa valoare nvarchar (sau valoare nulă).
În mea de zi cu zi DBA muncă, această funcție oferă o mulțime de confort, care otherwiseneed unele urât T-SQL de conversie și de manipulare șir de lucru pentru a obține formatsI nevoie.,th>EnrollDate
Figura 1 – Raport
Presupunem că sursa mea de masă și de date, cum ar fi următoarele:
Dacă vrem să ajungem datele afișate ca în , avem nevoie pentru a calcula care este o coloană calculată pe baza coloanei.,/div>
Dar pentru a scăpa de ambiguitate, putem folosi FORMATUL() funcție, după cum urmează:
declare @dt date='2019-June-08';select FORMAT(@dt, 'ddd') -- returns Sat
Deci, pentru exemplul de mai sus, putem folosi următoarea interogare pentru a obține thedesired rezultat:
select EnrollDate, WeekDay=format(EnrollDate, 'ddd'), NewMembersfrom tempdb.dbo.NewAccount;
rezultatul este:
Utilizarea SQL Server FORMAT pentru a obține Diverse Numerice Formate de Afișare
Există multe cerințe privind modul de date numerice sunt afișate, cum ar fi un thousandseparator fiecare 3 cifre, un procent semn, o monedă prefix sau un alt formatwhen minus valoarea este întâlnită., Următorul tabel prezintă unele dintre cele mai frecvent utilizateformate de valoare numerică.
O utilizare practică a format este prezentat în exemplul următor, adică previouslywhen am nevoie pentru a verifica rând contează pentru tabele într-o bază de date, am găsi că este foarte inconvenientto figura ce un număr foarte mare sunt fara virgula de separare, mai ales atunci când ai sute de millionsof randuri sau mai mult. Următorul cod listează rândurile fiecărui tabel în baza de date .
coloana are o virgulă pentru fiecare 3 cifre, care face readingmuch mai ușor decât coloana.,
utilizați SQL Server format pentru a afișa SQL Server Agent job Run Duration
SQL Server job history tabledbo.sysjobhistory are o coloană numită așa cum se arată mai jos:
Acesta este un număr întreg coloana, atunci când am nevoie pentru a genera un raport, chiar vreau asta HH:MM:SS format, de exemplu, dacă run_duration este de 1, vreau sa fie 00:00:01,mai multe exemple sunt enumerate în tabelul următor.,
Run_value | Așteptat Formatul de Afișare |
---|---|
12 | 00:00:12 |
123 | 00:01:23 |
1234 | 00:12:34 |
12345 | 01:23:45 |
123456 | 12:34:56 |
251234 | 1d+01:12:34 |
Deci, cum putem realiza acest lucru?trucul de aici este că voi folosi o funcție nedocumentată, dar simplă, în msdbdatabase, dbo.,agent_datetime, pentru a compune o valoare datetime prin introducerea unei valori dummy, cum ar fi 20000101,pentru parametrul @date și utilizați parametrul coloană pentru @time, apoi utilizați FORMAT() pentru a returna rezultatul formatat HH:MM:SS.
Pentru a ilustra, voi crea un tabel și popula-l cu somedata simularea coloană în dbo.sysjobhistory tabel.
cu următorul cod, pot converti valoarea de la hhmmssint la valoarea șirului HH:MM:SS.,
rezultatul este după cum urmează, exact ce vreau:
Sumar
În acest sfat, ne-am revizuit theFORMAT funcția() a introdus în SQL Server 2012, și care sunt enumerate câteva exemple practice thatotherwise sunt dificil de implementat. Funcția oferă confort fordaily DBA raport de lucru și atunci când este utilizat în mod corespunzător, funcția ajută la a face codul concis,ușor de înțeles și simplu de întreținut.
nu am discutat despre parametrul de cultură utilizat întheformat () funcția., Acest parametru de cultură poate fi foarte util în unele lucrări în format cultural, cum ar fi semnul valutar, numele săptămânii, formatul datei (adică An/Lună/zisau Lună/Zi/An etc.).). În unele companii cu birouri în întreaga lume, putem construi câteva întrebări care vor genera rezultate compatibile cu cultura.
pașii următori
puteți citi câteva alte sfaturi bune despre MSSQLTips.com vorbind despre același subiect.
vă rugăm să împărtășiți propriile constatări sau utilizarea creativă a acestei funcții.,
- Format SQL Server Date cu Functia FORMAT
- FORMAT Nou și CONCAT Funcții în SQL Server 2012
- SQL Server funcție pentru a converti întreg data la datetime format
de asemenea, Există un foarte interesant articol discută despre unele neajunsuri oftheFORMAT() funcție.,
Ultima Actualizare: 2019-08-06
Despre autor
Vezi toate sfaturile mele
- Mai multe sfaturi pentru dezvoltatori de baze de date…