Ultima actualizare: 29.07.2017
T-SQL oferă o serie de funcții pentru a lucra cu date și ore:
GETDATE: Returnează data și ora locală curentă pe baza ceasului sistemului ca obiect datetime
SELECTARE GETDATE() -- 2017-07-28 21:34:55.830
GETUTCDATE : returnează data și ora locală curentă în Greenwich Mean Time (UTC/GMT) ca obiect datetime
SELECT GETUTCDATE() -- 2017-07-28 18:34:55.830
SYSDATETIME: returnează data și ora locală curentă pe baza ceasului sistemului, dar diferă de GETDATE prin faptul că data și ora sunt returnate ca obiect datetime2
SELECTARE SYSDATETIME() -- 2017-07-28 21:02:22.7446744
SYSUTCDATETIME : returnează data și ora locală curentă în Greenwich Mean Time (UTC/GMT) ca obiect datetime2
SELECTARE SYSUTCDATETIME() -- 2017-07-28 18:20:27.5202777
SYSDATETIMEOFFSET : returnează un obiect datetimeoffset(7) care conține data și ora relativ la GMT
SELECTARE SYSDATETIMEOFFSET() -- 2017-07-28 21:02:22.7446744 +03:00
DAY: returnează ziua datei, care este transmisă ca parametru
SELECTAȚI ZIUA(GETDATE()) -- 28
MONTH : returnează luna unei date
SELECTARE LUNA(GETDATE()) -- 7
AN : returnează anul de la o dată
SELECTARE AN (GETDATE()) -- 2017
DATENAME: returnează porțiunea dată ca șir. Parametrul de selecție a părții date este trecut ca prim parametru, iar data în sine este trecută ca al doilea parametru:
SELECTAȚI DATENAME(lună, GETDATE()) -- iulie
Pentru a determina o parte a unei date, puteți utiliza următorii parametri (versiunile lor prescurtate sunt indicate în paranteze):
year (aa, aaaa) : an
quarter (qq, q) : sfert
luna (mm, m) : luna
dayofyear (dy, y) : ziua anului
zi (dd, d) : ziua lunii
saptamana (saptamana, satamana) : saptamana
weekday (dw) : ziua săptămânii
oră (hh) : oră
minute (mi, n) : minut
secundă (ss, s): secundă
milisecundă (ms): milisecundă
microsecundă (mcs) : microsecundă
nanosecundă (ns) : nanosecundă
tzoffset (tz): offset în minute în raport cu GMT (pentru un obiect datetimeoffset)
DATEPART: Returnează partea dată ca număr. Parametrul de selecție a părții date este transmis ca prim parametru (se folosesc aceiași parametri ca și pentru DATENAME), iar data în sine este transmisă ca al doilea parametru:
SELECTARE DATEPART(lună, GETDATE()) -- 7
DATEADD: Returnează o dată care este rezultatul adăugării unui număr la o anumită componentă de dată. Primul parametru reprezintă componenta dată descrisă mai sus pentru funcția DATENAME. Al doilea parametru este cantitatea care trebuie adăugată. Al treilea parametru este data în sine, la care trebuie să adăugați:
SELECT DATEADD(lună, 2, "2017-7-28") -- 2017-09-28 00:00:00.000 SELECT DATEADD(ziua, 5, "2017-7-28") -- 2017-08-02 00 :00:00.000 SELECT DATEADD(zi, -5, "2017-7-28") -- 2017-07-23 00:00:00.000
Dacă cantitatea adăugată reprezintă un număr negativ, atunci data este de fapt decrementată.
DATEDIFF: returnează diferența dintre două date. Primul parametru este componenta dată, care indică în ce unități trebuie măsurată diferența. Al doilea și al treilea parametru sunt datele comparate:
SELECT DATEDIFF(an, „2017-7-28”, „2018-9-28”) -- diferență 1 an SELECT DATEDIFF(lună, „2017-7-28”, „2018-9-28”) -- diferență 14 luni SELECT DATEDIFF(zi, „2017-7-28”, „2018-9-28”) -- diferență 427 de zile
TODATETIMEOFFSET : returnează o valoare datetimeoffset care este rezultatul adăugării decalajului de timp la alt obiect datetimeoffset
SELECTAȚI TODATETIMEOFFSET(„2017-7-28 01:10:22”, „+03:00”)
SWITCHOFFSET: returnează o valoare datetimeoffset care este rezultatul adăugării decalajului de timp la un obiect datetime2
SELECTARE SWITCHOFFSET(SYSDATETIMEOFFSET(), „+02:30”)
EOMONTH: Returnează data ultimei zile pentru luna care este utilizată în data trecută ca parametru.
SELECT EOMONTH("2017-02-05") -- 2017-02-28 SELECT EOMONTH("2017-02-05", 3) -- 2017-05-31
Ca al doilea parametru opțional, puteți trece numărul de luni care trebuie adăugate la dată. Apoi, ultima zi a lunii va fi calculată pentru noua dată.
DATEFROMPARTS: după an, lună și zi creează o dată
SELECTARE DATAFROMPARTS(2017, 7, 28) -- 2017-07-28
ISDATE: Testează dacă o expresie este o dată. Dacă este, returnează 1, în caz contrar returnează 0.
SELECT ISDATE("2017-07-28") -- 1 SELECT ISDATE("2017-28-07") -- 0 SELECT ISDATE("07-28-2017") -- 0 SELECT ISDATE("SQL") - - 0
Un exemplu de utilizare a funcțiilor este crearea unui tabel de comandă care conține data comenzii:
CREATE TABLE Orders (Id INT IDENTITY PRIMARY KEY, ProductId INT NOT NULL, CustomerId INT NOT NULL, CreatedAt DATE NOT NULL DEFAULT GETDATE(), ProductCount INT DEFAULT 1, Price MONEY NOT NULL);
Expresia DEFAULT GETDATE() specifică că, dacă nu este furnizată nicio dată la adăugarea datelor, aceasta este calculată automat utilizând funcția GETDATE().
Un alt exemplu - să găsim comenzi care au fost făcute acum 16 zile:
SELECTAȚI * FROM Comenzile WHERE DATEDIFF(zi, CreatedAt, GETDATE()) = 16
De la autor: Astăzi vom vorbi despre cum funcționează funcțiile de dată în SQL. Următorul tabel oferă o listă a tuturor funcțiilor importante de dată și oră care sunt disponibile. Există și altele suportate de diferite SGBD-uri. Această listă reprezintă funcțiile disponibile în SGBD-ul MySQL.
ADDDATE(). Adaugă date
ADDTIME(). Adaugă timp
CONVERT_TZ(). Se convertește dintr-un fus orar în altul
CURDATE(). Returnează data curentă
CURRENT_DATE(), CURRENT_DATE. Sinonime pentru CURDATE()
CURRENT_TIME(), CURRENT_TIME. Sinonime pentru CURTIME()
CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP. Sinonime pentru NOW()
CURTIME(). Returnează ora curentă
DATE_ADD(). Adaugă două date
DATE_FORMAT(). Setează formatul de dată specificat
DATE_SUB(). Scade o dată de la alta
DATA(). Extrage partea dată dintr-o expresie care reprezintă o dată sau o oră și o dată
DATEDIFF(). Scade o dată de la alta
ZI(). Sinonim pentru DAYOFMONTH()
DAYNAME(). Returnează ziua săptămânii
DAYOFMONT(). Returnează ziua lunii (1-31)
DAYOFWEEK(). Returnează indexul zilei săptămânii argumentului
ZIUL ANULUI(). Returnează numărul zilei din an (1-366)
EXTRAGE. Preia partea dată
FROM_DAYS(). Convertește un număr de zi într-o dată
FROM_UNIXTIME(). Formatează o dată ca marcaj temporal UNIX
ORĂ(). Preia ora
LAST_DAY. Returnează ultima zi a lunii pentru argument
LOCALTIME(), LOCALTIME. Sinonim pentru ACUM()
LOCALTIMESTAMP, LOCALTIMESTAMP(). Sinonim pentru ACUM()
MAKEDATE(). Creează o dată din anul și ziua anului
MAKETIME. MAKETIME(). MICROSECOND(). Returnează microsecunde din argument
MINUT(). Returnează minute de la ceartă
LUNĂ(). Revenind luna de la o dată
MONTHNAME(). Returnează numele lunii
ACUM(). Returnează data și ora curente
PERIOD_ADD(). Adaugă o perioadă anului-lună
PERIOD_DIFF(). Returnează numărul de luni dintre perioade
TRIMESTRU(). Returnează trimestrul din argument
SEC_TO_TIME(). Convertește secundele în formatul „HH:MM:SS”.
DOILEA(). Returnează secunde (0-59)
STR_TO_DATE(). Convertește un șir într-o dată
SUBDATE(). Când este apelat cu trei argumente, sinonimul DATE_SUB().
SUBTIME(). Scade timpul
SYSDATE(). Returnează timpul de execuție al unei funcții
TIME_FORMAT(). Setează formatul orei
TIME_TO_SEC(). Returnează argumentul convertit în secunde
TIMP(). Extrage partea de timp a expresiei trecute
TimeDiff(). Scade timpul
TIMESTAMP(). Cu un singur argument, această funcție returnează o expresie de dată sau oră. Cu două argumente - adaugă aceste două argumente
TIMESTAMPADD(). Adaugă un interval la o expresie de dată și oră
TIMESTAMPDIFF(). Scade un interval dintr-o expresie datetime
TO_DAYS(). Returnează argumentul datei convertit în zile
UNIX_TIMESTAMP(). Returnează un marcaj temporal UNIX
UTC_DATE(). Returnează data UTC curentă
UTC_TIME(). Returnează ora UTC actuală
UTC_TIMESTAMP(). Returnează data și ora UTC curente
SĂPTĂMÂNĂ(). Returnează numărul săptămânii
ZIUA SĂPTĂMÂNNICĂ(). Returnează indexul zilei săptămânii
WEEKOFYEAR(). Returnează numărul săptămânii calendaristice (1-53)
AN(). Returnează anul
YEARWEEK(). Returnează anul și săptămâna
Când este apelat cu un al doilea argument specificat ca INTERVAL, ADDDATE() este un sinonim pentru DATE_ADD(). Funcția asociată SUBDATE() este un sinonim pentru DATE_SUB(). Pentru informații despre argumentul blocului INTERVAL, consultați DATE_ADD().
Când este apelat cu al doilea argument dat în zile, MySQL tratează acest lucru ca un număr întreg de zile de adăugat expresiei.
ADDTIME() adaugă expr2 la expr1 și returnează rezultatul. Expr1 este o expresie de oră sau dată și oră, în timp ce expr2 este o expresie de timp.
Convertește valoarea datei și orei dt din fusul orar specificat în from_tz în fusul orar specificat în to_tz și returnează valoarea rezultată. Această funcție returnează NULL dacă argumentele sunt nevalide.
Returnează data curentă ca valoare în formatul „AAAA-LL-ZZ” sau AAAAMMZZ, în funcție de faptul dacă această funcție este utilizată într-un șir sau context numeric.
CURRENT_DATE și CURRENT_DATE() sunt sinonime pentru CURDATE()
Returnează ora curentă ca valoare în formatul „HH:MM:SS” sau HHMMSS, în funcție de faptul dacă funcția este utilizată într-un șir sau context numeric. Valoarea este exprimată pentru fusul orar curent.
CURRENT_TIME și CURRENT_TIME() sunt sinonime pentru CURTIME().
CURRENT_TIMESTAMP și CURRENT_TIMESTAMP() sunt sinonime pentru NOW().
Preia partea dată a unei expresii date sau datetime expr.
DATEDIFF() returnează expr1.expr2 exprimat ca numărul de zile dintre două date. Atât expr1 cât și expr2 sunt expresii de dată sau oră. În calcule sunt utilizate doar părțile date.
Aceste funcții efectuează operații aritmetice pe date. data este reprezentată ca valoare DATETIME sau DATE care indică data de început. expr este o expresie care specifică valoarea intervalului de adăugat sau scăzut din data inițială. expr este un șir; poate începe cu „-” pentru intervale negative.
unit este un cuvânt cheie care specifică unitățile de măsură pentru expresie. Cuvântul cheie INTERVAL și notația unităților nu fac distincție între majuscule și minuscule. Următorul tabel arată forma așteptată a argumentului expr pentru fiecare valoare unitară.
Valorile QUARTER și WEEK sunt disponibile în MySQL începând cu versiunea 5.0.0.
Această comandă formatează valoarea datei conform șirului de format specificat. Următoarele indicatoare pot fi utilizate în linia de format. Indicatorii de format trebuie precedați de un caracter „%”.
%o. Numele prescurtat al zilei săptămânii (Dum..Sat)
%b. Numele lunii prescurtat (ian..dec)
%Cu. Denumirea numerică a lunii (0…12)
%D. Ziua lunii cu sufixul englezesc (0, 1, 2, 3,.)
%d. Denumirea numerică a zilei lunii (00..31)
%e. Denumirea numerică a zilei lunii (00..31)
%f. Microsecunde (000000..999999)
%H. Ora (00..23)
%h. Ora (01..12)
%I. Ora (01..12)
%i. Desemnarea numerică a minutelor (00..59)
%J. Ziua anului (001..366)
%k. Ora (0..23)
%l. Ora (1..12)
%M. Numele lunii (ianuarie..decembrie)
%m. Denumirea numerică a lunii (00..12)
%r. AM sau PM
%r. Ora, format de 12 ore (hh:mm:ss urmat de AM sau PM)
%S. Secunde (00..59)
%s. Secunde (00..59)
%T. Ora, format de 24 de ore (hh:mm:ss)
%U. Săptămâna (00..53), unde duminica este prima zi a săptămânii
%u. Săptămâna (00..53), unde luni este prima zi a săptămânii
%V. Săptămâna (01..53), unde duminica este prima zi a săptămânii; folosit cu %X
%v. Săptămâna (01..53), unde luni este prima zi a săptămânii; folosit cu %x
%W. Numele zilei săptămânii (duminică..sâmbătă)
%w. Ziua săptămânii (0=duminică..6=sâmbătă)
%X. An pentru o săptămână în care prima zi a săptămânii este duminică, un număr din patru cifre; folosit cu %V
%x. An pentru o săptămână în care prima zi a săptămânii este luni, un număr din patru cifre; folosit cu %V
%Y. An, data, patru cifre
%y. Denumirea numerică a anului (două cifre)
%%. Literal simbolul %
%x. x, pentru toate.x nu sunt enumerate mai sus
Similar cu funcția DATE_ADD().
DAY() este un sinonim pentru funcția DAYOFMONTH().
Returnează ziua săptămânii pentru data specificată.
Returnează ziua lunii pentru data specificată în intervalul de la 0 la 31.
Returnează indexul zilei săptămânii (1 = duminică, 2 = luni, ., 7 = sâmbătă). Aceste valori ale indexului urmează standardul ODBC.
Returnează ziua anului pentru data specificată în intervalul de la 1 la 366.
Funcția EXTRACT() folosește aceleași tipuri de indicatori de unitate ca DATE_ADD() sau DATE_SUB(), dar nu efectuează operații aritmetice pe date, ci mai degrabă extrage partea indicatorului de unitate a datei.
Valoarea DATE este returnată luând în considerare numărul de zile N.
Nota. Folosiți cu atenție FROM_DAYS() pentru datele vechi. Funcția nu este destinată să lucreze cu valorile datei înainte de introducerea calendarului gregorian (1582).
Returnează o reprezentare a argumentului unix_timestamp ca valoare în formatul „AAAA-LL-ZZ HH:MM:SS sau AAAAMMDDHHMMSS”, în funcție de faptul dacă această funcție este utilizată într-un șir sau context numeric. Valoarea este exprimată în fusul orar curent. Parametrul unix_timestamp este o valoare internă de marcaj temporal care este generată de funcția UNIX_TIMESTAMP().
Dacă este specificat formatul, rezultatul este formatat conform șirului de format, care este utilizat în același mod ca în secțiunea DATE_FORMAT().
Returnează orele de la ora specificată. Intervalul valorii returnate este de la 0 la 23. Cu toate acestea, intervalul valorilor TIME este de fapt mult mai mare, astfel încât HOUR poate returna valori mai mari decât 23.
Preia o valoare de dată sau de oră și returnează valoarea corespunzătoare ultimei zile a lunii. Returnează NULL dacă argumentul este invalid.
LOCALTIME și LOCALTIME() sunt sinonime pentru NOW().
LOCALTIMESTAMP și LOCALTIMESTAMP() sunt sinonime pentru NOW().
Returnează valorile pentru data, anul specificat și ziua anului. Valoarea zilei anului trebuie să fie mai mare decât 0 sau rezultatul va fi NULL.
Returnează valoarea timpului calculată din argumentele oră, minut și secundă.
Returnează microsecunde dintr-o expresie de timp sau o expresie datetime(expr) ca număr în intervalul de la 0 la 999999.
Returnează minutele pentru timpul specificat, în intervalul de la 0 la 59.
Returnează luna pentru data specificată în intervalul de la 0 la 12.
Returnează numele complet al lunii pentru data specificată.
Returnează data și ora curentă ca valoare în formatul „AAAA-LL-ZZ HH:MM:SS” sau AAAAMMDDHHMMSS, în funcție de faptul dacă funcția este utilizată într-un șir sau context numeric. Această valoare este exprimată în fusul orar curent.
Adaugă N luni la perioada P (în format AAAA sau AAAA). Returnează o valoare în format AAAAMM. Rețineți că argumentul perioadei P nu este o valoare de dată.
Returnează numărul de luni dintre perioadele P1 și P2. Perioadele P1 și P2 trebuie specificate în formatul YYMM sau YYYYMM. Rețineți că argumentele perioadei P1 și P2 nu sunt valori ale datei.
Returnează trimestrul anului pentru data specificată în intervalul de la 1 la 4.
Returnează valoarea secundelor pentru un interval de timp cuprins între 0 și 59.
Returnează argumentul secunde convertit în ore, minute și secunde în formatul „HH:MM:SS” sau HHMMSS, în funcție de faptul dacă funcția este utilizată într-un șir sau context numeric.
Acesta este inversul funcției DATE_FORMAT(). Acceptă șirul str și formatul șir de format. Funcția STR_TO_DATE() returnează DATETIME dacă șirul de format conține atât o dată, cât și o oră. În caz contrar, returnează DATE sau TIME dacă șirul conține doar o dată sau o oră.
Dacă SUBDATE() este apelată cu un al doilea argument specificat ca INTERVAL, funcția este un sinonim pentru DATE_SUB(). Pentru informații despre argumentul INTERVAL, consultați DATE_ADD().
Funcția SUBTIME() returnează expr1. expr2 este exprimată ca valoare în același format ca expr1. Valoarea expr1 este o expresie oră sau dată și oră, iar valoarea expr2 este o expresie temporală.
Returnează data și ora curentă ca valoare în formatul „AAAA-LL-ZZ HH:MM:SS” sau AAAAMMDDHHMMSS, în funcție de faptul dacă funcția este utilizată într-un șir sau context numeric.
Extrage porțiunea de timp a expr și o returnează ca șir.
TIMEDIFF() returnează expr1. expr2 este exprimată ca valoare de timp. Valorile expr1 și expr2 sunt expresii oră sau dată și oră, dar ambele trebuie să fie de același tip.
Cu un argument specificat, această funcție returnează o expresie dată sau oră expr ca valoare dată și oră. Cu două argumente, adaugă expresia de timp expr2 la expresia de dată sau oră expr1 și returnează rezultatul ca valoare de dată și oră.
Această funcție adaugă o expresie de interval întreg la o expresie de dată sau oră datetime_expr. Unitățile pentru interval sunt specificate de argumentul unit, care poate lua una dintre următoarele valori:
Valoarea unității poate fi specificată folosind unul dintre cuvintele cheie, așa cum se arată mai sus, sau cu prefixul SQL_TSI_. De exemplu, DAY și SQL_TSI_DAY sunt valori valide.
Returnează diferența întregului dintre expresiile de dată sau de oră datetime_expr1 și datetime_expr2. Unitățile de măsură pentru rezultat sunt specificate de argumentul unit. Valorile valide pentru argumentul unitate sunt aceleași cu cele enumerate în funcția TIMESTAMPADD().
Această funcție este utilizată în același mod ca și funcția DATE_FORMAT(), dar șirul de format poate conține doar specificatori de format pentru ore, minute și secunde.
Dacă valoarea timpului conține o parte oră care este mai mare de 23, indicatorii de format de ceas %H și %k dau o valoare mai mare decât intervalul normal de la 0 la 23. Alți indicatori de format de ceas dau o valoare modulo 12 ore.
Returnează argumentul de timp convertit în secunde.
Returnează numărul zilei (numărul de zile de la anul 0) pentru data dată dată.
Dacă această funcție este apelată fără un argument, returnează marcajul de timp Unix (secunde de la „1970-01-01 00:00:00” UTC) ca un întreg pozitiv. Dacă UNIX_TIMESTAMP() este apelat cu un argument de dată, returnează valoarea argumentului exprimată în secunde de la „1970-01-01 00:00:00” UTC. data poate fi un șir DATE, un șir DATETIME, un TIMESTAMP sau un număr în formatul YYMMDD sau YYYYMMDD.
Returnează data UTC curentă ca valoare în formatul „AAAA-LL-ZZ” sau AAAAMMZZ, în funcție de dacă această funcție este utilizată într-un șir sau context numeric.
Returnează ora UTC curentă ca valoare în formatul „HH:MM:SS” sau HHMMSS, în funcție de faptul dacă funcția este utilizată într-un șir sau context numeric.
Returnează data și ora UTC curentă ca valoare „AAAA-LL-ZZ HH:MM:SS” sau în formatul AAAAMMDDDHHMMSS, în funcție de faptul dacă această funcție este utilizată într-un șir sau context numeric.
Această funcție returnează numărul săptămânii pentru data dată dată. Formularul WEEK() cu două argumente vă permite să specificați dacă săptămâna începe duminică sau luni și dacă valoarea returnată trebuie să fie în intervalul 0 la 53 sau de la 1 la 53. Dacă argumentul mod este omis, valoarea este utilizată variabila de sistem default_week_format
Returnează indexul zilei săptămânii pentru data dată (0 = luni, 1 = marți, 6 = duminică).
Returnează săptămâna calendaristică pentru data dată ca un număr în intervalul de la 1 la 53. WEEKOFYEAR() este o funcție de compatibilitate echivalentă cu WEEK(date,3).
Returnează anul pentru data dată, variind de la 1000 la 9999 sau 0 pentru date.zero.
Returnează anul și săptămâna pentru data dată dată. Argumentul mode funcționează exact ca argumentul mode al funcției WEEK(). Anul rezultat poate fi diferit de anul din argumentul datei pentru prima și ultima săptămână a anului.
Nota. Numărul săptămânii este diferit de ceea ce WEEK() va returna (0) pentru argumentele opționale 0 sau 1, deoarece WEEK() va returna săptămâna în contextul unui anumit an.
SQL care lucrează cu date– este atât de important încât nu puteți face fără cunoștințe despre operatorii SQL de bază în orice proiect care merită. Orice s-ar putea spune, în toate serviciile este nevoie de a lucra cu timpul. De regulă, acesta este calculul perioadelor de la o dată la alta, de exemplu, afișarea unei liste de utilizatori înregistrați pentru un an, lună, zi, oră.Vreau să ofer o serie de soluții la problemele comune legate de lucrul cu date în SQL, pe care le-am întâlnit eu însumi în fiecare zi, sper că acest lucru vă va fi relevant și util.
Cum să obțineți data curentă în SQL
WHERE data = CURDATE()
sau alta varianta
WHERE data = STR_TO_DATE(acum(), "%Y-%m-%d")
Adăugați o oră până acum în SQL
DATE_ADD(„2013-03-30”, INTERVAL 1 HOUR)
Adăugați o zi la o dată în SQL
DATE_ADD(„2013-03-30”, INTERVAL 1 DAY)
În mod similar, puteți adăuga orice număr de zile la data curentă.
Adăugați o lună la o dată în SQL
DATE_ADD("2013-03-30", INTERVAL 1 MONTH)
În mod similar, puteți adăuga orice număr de luni la data curentă.
Obțineți ziua de ieri în SQL
DATE_ADD(CURDATE(), INTERVAL -1 ZI)
sau
DATE_SUB(CURDATE(), INTERVAL 1 ZI)
Obțineți data de începere a săptămânii curente în SQL
Aceasta este una dintre cele mai dificile probleme la prima vedere, dar poate fi rezolvată foarte simplu
CURDATE()-WEEKDAY(CURDATE());
Obțineți o selecție din această zi de luni până în ziua curentă a săptămânii în SQL
Obțineți o selecție din prima zi a lunii curente până în ziua curentă a săptămânii în SQL
WHERE (data INTRE (CURDATE()-WEEKDAY(CURDATE())) SI CURDATE())
Cum să obțineți data de naștere a utilizatorului în SQL Găsiți toți utilizatorii a căror naștere este luna viitoare în SQL Pe lângă cazurile de mai sus privind lucrul cu date în SQL, vă recomand să citiți documentația pentru următorii operatori: Lucrul cu datele în SQL, după cum se dovedește, nu este atât de dificil, iar acum, în loc să calculați perioade folosind PHP, puteți face acest lucru în etapa de execuție a interogării SQL și obțineți selecția de date necesară. Funcțiile limbajului Transact-SQL pot fi agregate sau scalare. Aceste tipuri de funcții sunt discutate în acest articol. Funcțiile agregate efectuează calcule pe un grup de valori de coloană și returnează întotdeauna o singură valoare ca rezultat al acestor calcule. Transact-SQL acceptă mai multe funcții de agregare comune: Calculează media aritmetică a datelor conținute într-o coloană. Valorile pe care se efectuează calculul trebuie să fie numerice. Determină valoarea maximă și minimă a tuturor valorilor datelor conținute într-o coloană. Valorile pot fi numerice, șir sau temporale (data/ora). Calculează suma totală a valorilor dintr-o coloană. Valorile pe care se efectuează calculul trebuie să fie numerice. Numărează numărul de valori non-nule dintr-o coloană. Funcția count(*) este singura funcție agregată care nu efectuează calcule pe coloane. Această funcție returnează numărul de rânduri (indiferent dacă coloanele individuale conțin valori nule). Similar cu funcția de numărare, cu diferența că returnează o valoare de date BIGINT. Utilizarea funcțiilor de agregare obișnuite într-o instrucțiune SELECT va fi discutată într-un articol viitor. Funcțiile scalare Transact-SQL sunt utilizate în crearea expresiilor scalare. (O funcție scalară efectuează calcule pe o singură valoare sau o listă de valori, în timp ce o funcție agregată efectuează calcule pe un grup de valori pe mai multe rânduri.) Funcțiile scalare pot fi împărțite în următoarele categorii: funcții numerice; funcții de dată; funcții șir; funcțiile sistemului; funcții de metadate. Aceste tipuri de funcții sunt discutate în secțiunile următoare. Funcțiile numerice Transact-SQL sunt funcții matematice pentru modificarea valorilor numerice. O listă a funcțiilor numerice și scurtele lor descrieri sunt prezentate în tabelul de mai jos: Returnează valoarea absolută (adică valorile negative sunt returnate ca pozitive) a unei expresii numerice n. SELECT ABS(-5.320) -- Returnează 5.320 SELECT ABS(8.90) -- Returnează 8.90 Funcții trigonometrice inverse care calculează arccosinus, arcsinus, arctangente ale valorii n (pentru ATN2 se calculează arctangente n/m). Valorile de intrare n, m și rezultatul sunt de tipul de date FLOAT. Funcții trigonometrice care calculează cosinusul, sinusul, tangenta, cotangenta valorii n. Rezultatul are tipul de date FLOAT. Funcția GRADE convertește radianii în grade, respectiv RADIANI, invers. SELECT GRADE(PI() / 4) -- Returnează 45 SELECT COS(RADIANS(60,0)) -- Returnează 0,5 Rotunjește un număr la o valoare întreagă mai mare. SELECT CEILING(-5.320) -- Returnează -5 SELECT CEILING(8.90) -- Returnează 9 Rotunjește valoarea lui n la cea mai apropiată p. Când p este un număr pozitiv, partea fracțională a lui n este rotunjită, iar când este negativă, partea întreagă este rotunjită. Când se folosește argumentul opțional t, numărul n nu este rotunjit, ci mai degrabă trunchiat (adică rotunjit în jos). SELECT ROUND(5.3208, 3) -- Returnează 5.3210 SELECT ROUND(125.384, -1) -- Returnează 130.000 SELECT ROUND(125.384, -1, 1) -- Returnează 120.000 Rotunjește în jos la cea mai mică valoare întreagă. SELECT FLOOR(5.88) -- Returnează 5 Calculează valoarea lui e n . LOG(n) - calculează logaritmul natural (adică baza e) al numărului n, LOG10(n) - calculează logaritmul zecimal (bază 10) al numărului n. Returnează valoarea lui π (3,1415). Calculează valoarea lui x y . Returnează un număr arbitrar de tip FLOAT în intervalul de valori între 0 și 1. Returnează numărul de rânduri de tabel care au fost procesate de ultima instrucțiune Transact-SQL executată de sistem. Valoarea returnată este de tip BIGINT. Returnează semnul lui n ca număr: +1 dacă este pozitiv, -1 dacă este negativ. SQRT(n) - calculează rădăcina pătrată a numărului n, SQUARE(n) - returnează pătratul argumentului n. Funcțiile de dată evaluează părțile corespunzătoare de dată sau oră ale unei expresii sau returnează o valoare a intervalului de timp. Funcțiile de dată acceptate în Transact-SQL și scurtele lor descrieri sunt prezentate în tabelul de mai jos: Returnează data și ora curentă a sistemului. SELECTAȚI GETDATE() Returnează partea de dată specificată în parametrul element ca număr întreg. Returnează 1 (ianuarie) SELECT DATEPART(lună, "01/01/2012") -- Returnează 4 (miercuri) SELECT DATEPART(zi a săptămânii, "01/02/2012") Returnează partea dată specificată în parametrul element ca șir de caractere. Returnează ianuarie SELECT DATENAME(lună, "01/01/2012") -- Returnează miercuri SELECT DATENAME(zi a săptămânii, "01/02/2012") Calculează diferența dintre două părți date dat1 și dat2 și returnează un rezultat întreg în unitățile specificate în argumentul element. Returnează 19 (interval de 19 ani între date) SELECT DATEDIFF(an, „01/01/1990”, „01/01/2010”) -- Returnează 7305 (interval de 7305 zile între date) SELECT DATEDIFF(ziua, „01/01 /1990", "01/01" .2010") Adaugă al n-lea număr de unități specificat în argumentul articol la data specificată. (n poate fi și negativ.) Se vor adăuga 3 zile la data curentă SELECT DATEADD(day, 3, GETDATE()) Funcțiile șir manipulează valorile coloanelor, care sunt de obicei tipuri de date caractere. Funcțiile șir acceptate în Transact-SQL și scurtele lor descrieri sunt prezentate în tabelul de mai jos: Convertește caracterul specificat în întregul cod ASCII corespunzător. SELECT ASCII("W") -- 87 SELECT UNICODE("u") -- 1102 Convertește un cod ASCII (sau Unicode dacă NCHAR) în caracterul corespunzător. SELECTARE CHAR(87) -- „W” SELECTARE NCHAR(1102) -- „yu” Returnează poziția de pornire a apariției subșirului str1 în șirul str2. Dacă șirul str2 nu conține subșirul str1, se returnează valoarea 0 Returnează 5 SELECT CHARINDEX ("morph", "polimorfism") Returnează un număr întreg între 0 și 4 care este diferența dintre valorile SOUNDEX ale celor două șiruri str1 și str2. Metoda SOUNDEX returnează un număr care caracterizează sunetul șirului. Folosind această metodă, puteți identifica șiruri similare. Funcționează doar pentru caractere ASCII. Returnează 2 SELECT DIFFERENCE („ortografie”, „a spune”) Returnează numărul primelor caractere ale șirului str specificat de parametrul de lungime pentru LEFT și ultimele caractere de lungime ale șirului str pentru funcția RIGHT. DECLARE @str nvarchar(30) = "Sincronizare"; -- Returnează „Sync” SELECT LEFT(@str, 4) -- Returnează „Zation” SELECT RIGHT(@str, 5) Returnează numărul de caractere (nu numărul de octeți) șirului de caractere specificat în argument, inclusiv spațiile de sfârșit. Funcția LOWER convertește toate literele mari din str1 în minuscule. Literele mici și alte caractere incluse în șir nu sunt afectate. Funcția UPPER convertește toate literele mici din șirul str în majuscule. DECLARE @str nvarchar(30) = "Sincronizare"; -- Returnează „SYNCHRONIZATION” SELECT UPPER(@str) -- Returnează „synch” SELECT LOWER(@str) Funcția LTRIM elimină spațiile de început din șirul str, respectiv RTRIM elimină spațiile de la sfârșitul șirului. Returnează un șir Unicode cu delimitatori adăugați pentru a converti șirul de intrare într-un identificator delimitat valid. DECLARE @str nvarchar(30) = "Sincronizare"; -- Returnează „[Sincronizare]” SELECT NUME CITATUL (@str) Returnează poziția de pornire a primei apariții a modelului p în expresia dată sau zero dacă modelul nu este găsit. Returnează 4 SELECT PATINDEX ("%chro%", "Sincronizare") Înlocuiește toate aparițiile subșirului str2 din șirul str1 cu subșirul str3. Returnează „Desincronizare” SELECT REPLACE(„Sincronizare”, „Sincronizare”, „Desincronizare”) Repetă șirul de str i ori. Returnează „aBaBaBaBaB” SELECT REPLICATE(„aB”, 5) Tipărește șirul șir în ordine inversă. Returnează „yaitsazinorkhniS” SELECT REVERSE(„Sincronizare”) Returnează un cod soundex de patru caractere folosit pentru a determina dacă două șiruri sunt similare. Funcționează doar pentru caractere ASCII. Returnează un șir de spații cu lungimea specificată în parametrul lungime. Similar cu REPLICATE (" ", lungime). Convertește expresia în virgulă mobilă f specificată într-un șir, unde len este lungimea șirului, inclusiv virgulă zecimală, semn, cifre și spații (implicit la 10), iar d este numărul de zecimale de returnat. Returnează „3.14” SELECT STR (3.1415, 4, 2) Îndepărtează caracterele de lungime din șirul str1, începând cu poziția a și inserează șirul str2 în locul lor. Notă într-o carte SELECT STUFF(„Notebook”, 5, 0,” într-un „) -- Manual SELECT STUFF(„Notebook”, 1, 4, „Hand”) Extrage din șirul str, începând de la poziția a, un subșir de lungime. Funcțiile sistemului Transact-SQL oferă informații extinse despre obiectele bazei de date. Majoritatea funcțiilor sistemului utilizează un identificator numeric intern (ID) care este atribuit fiecărui obiect de bază de date atunci când este creat. Folosind acest identificator, sistemul poate identifica în mod unic fiecare obiect al bazei de date. Următorul tabel listează unele dintre cele mai importante funcții ale sistemului, împreună cu scurtele lor descrieri: Convertește expresia w la tipul de date specificat (dacă este posibil). Argumentul w poate fi orice expresie validă. Returnează 3 SELECT CAST (3.1258 AS INT) Returnează prima valoare a expresiei din lista de expresii a1, a2, ... care nu este nulă. Returnează lungimea coloanei col a obiectului bazei de date (tabel sau vizualizare) obj. Returnează 4 SELECT COL_LENGTH(„Angajat”, „Id”) Echivalent cu funcția CAST, dar argumentele sunt specificate diferit. Poate fi folosit cu orice tip de date. Returnează data și ora curente. Returnează numele utilizatorului curent. Returnează numărul de octeți ocupați de expresia z. Această interogare returnează lungimea fiecărui câmp SELECT DATALENGTH(FirstName) FROM Employee Returnează 1 dacă utilizarea valorilor nule în baza de date dbname respectă standardul ANSI SQL. Returnează valoarea expr dacă nu este NULL; în caz contrar, valoarea este returnată. Stabilește dacă expresia expr este un tip numeric valid. Creează un ID de număr unic de identificare constând dintr-un șir binar de 16 octeți conceput pentru a stoca valori ale tipului de date UNIQUEIDENTIFIER. Creează un GUID care este mai mare decât orice alt GUID creat anterior de această funcție pe computerul specificat. (Această funcție poate fi utilizată numai ca valoare implicită pentru o coloană.) Returnează null dacă expresiile expr1 și expr2 au aceleași valori. Interogarea returnează NULL pentru un proiect -- al cărui număr = "p1" SELECT NULLIF(Număr, "p1") FROM Project Returnează informații despre proprietățile serverului de baze de date. Returnează ID-ul utilizatorului curent. Returnează numele de utilizator ID-ul utilizatorului. Dacă nu este specificat niciun utilizator, se returnează ID-ul utilizatorului curent. Returnează numele de utilizator cu id-ul specificat. Dacă nu este specificat un identificator, este returnat numele utilizatorului curent. Practic, funcțiile de metadate returnează informații despre o bază de date specificată și despre obiectele bazei de date. Tabelul de mai jos rezumă unele dintre cele mai importante funcții de metadate împreună cu scurtele lor descrieri: Returnează numele coloanei cu identificatorul specificat col_id al tabelului cu identificatorul tab_id. Returnează numele coloanei „LastName” SELECT COL_NAME (OBJECT_ID(„Angajat”), 3) Returnează informații despre coloana specificată. Returnează valoarea proprietății PRECISION -- pentru coloana Id din tabelul Employee SELECT COLUMNPROPERTY (OBJECT_ID(„Angajat”), „Id”, „precizie”) Returnează valoarea proprietății proprietății bazei de date. Returnează valoarea proprietății IsNullConcat -- pentru baza de date SampleDb SELECT DATABASEPROPERTY ("SampleDb", "IsNullConcat") Returnează ID-ul bazei de date db_name. Dacă nu este specificat un nume de bază de date, este returnat ID-ul bazei de date curente. Returnează numele bazei de date care are db_id. Dacă nu este specificat un identificator, este returnat numele bazei de date curente. Returnează numele coloanei indexate a tabelului. O coloană este indicată prin identificatorul de index i și poziția coloanei nr în acel index. Returnează proprietățile unui index sau statistică denumit pentru numărul ID tabel specificat, numele indexului sau statisticii și numele proprietății. Returnează numele obiectului bazei de date care are identificatorul obj_id. SELECTARE NUME_OBIECT(245575913); Returnează identificatorul obiectului nume_obj al bazei de date. Returnează 245575913 - ID tabel angajat SELECT OBJECT_ID(„Angajat”) Returnează informații despre obiectele din baza de date curentă. Salutări, dragi cititori ai site-ului blogului. O bază de date trebuie adesea să stocheze diferite date legate de dată și oră. Aceasta poate fi data la care au fost adăugate informațiile, data înregistrării utilizatorului, ora ultimei autorizari și alte date. ÎN Limbajul SQL Există multe funcții legate de dată și oră, așa că astăzi le vom analiza. Toate funcțiile discutate mai jos funcționează cu tipuri de date calendaristice. A obține data și ora curente funcția este utilizată ACUM(). SELECTAȚI ACUM() Pentru a primi doar data curentă exista o functie CURDATE(). SELECTARE CURDATE() Și funcționalitate CURTIME(), care se întoarce numai ora curentă: SELECTARE CURTIME() Funcțiile CURDATE() și NOW() sunt utile pentru adăugarea înregistrărilor la o bază de date pentru care doriți să stocați data la care au fost adăugate. De exemplu, atunci când adăugați un articol pe un site web, ar fi o idee bună să stocați data publicării acestuia. Apoi, cererea de a adăuga un articol la baza de date va fi cam așa: INSERT INTO posts (id_post, text_post, data_publication) VALUES (1, „text articol”, NOW ()); Funcţie ADDDATE (data, valoare INTERVAL) adaugă până în prezent data sens valoare și returnează valoarea rezultată. Următoarele valori pot fi folosite ca valoare: precum și combinațiile lor: SELECTAȚI ADAUGĂ ("2015-09-28 10:30:20", INTERVAL 1 DAY) SELECTARE ADDDATE ("2015-09-28 10:30:20", INTERVAL "3 1:20" DAY_MINUTE) Funcţie SUBDATE (data, valoare INTERVAL) produce scădere valorile de la data data. Exemplu: SELECTAȚI SUBDATE ("2015-09-28 10:30:20", INTERVAL 20 HOUR) Funcţie PERIOD_ADD(perioadă, n) adaugă la perioada valoric n luni. Valoarea perioadei trebuie să fie în format AAAAMM (de exemplu, septembrie 2015 ar fi 201509). Exemplu: SELECTARE PERIOD_ADD (201509, 4) Funcţie TIMESTAMPADD(interval, n, dată) adaugă până în prezent data interval de timp n , ale cărui valori sunt specificate de parametrul interval. Valori posibile pentru parametrul interval: SELECTARE TIMESTAMPADD (TRIMESTRE, 1, „2015-09-28”) Funcţie SUBTIME (data, ora) scade din data data timp timp. Exemplu: SELECT SUBTIME ("2015-09-28 10:30:20", "50:20:19") Funcţie TIMEDIFF(data1, data2) calculează diferența în ore, minute și secundeîntre două date data1 și data2 . Exemplu: SELECT TIMEDIFF ("2015-09-28 10:30:20", "2015-09-29 10:30:20") Funcţie DATEDIFF(data1, data2) calculează diferenta in zileîntre două date, în timp ce orele, minutele și secundele sunt ignorate la specificarea datelor. Exemplu: SELECT DATEDIFF ("2015-09-28 00:00:20", "2015-09-27 23:40:20") Folosind această funcție, este ușor să determinați câte zile au trecut de la data publicării articolului: SELECTAȚI DATEDIFF (CURDATE(), data_publicare) FROM postările WHERE id_post = 1 Funcţie PERIOD_DIFF (perioada 1, perioada 2) calculează diferenta in luniîntre două date. Datele trebuie să fie în format AAAAA. De exemplu, să aflăm câte luni au trecut din ianuarie 2015 până în septembrie 2015: SELECTARE PERIOD_DIFF (201509, 201501) Funcţie TIMESTAMPDIFF(interval, data1, data2) calculează diferența dintre datele date2 și date1 în unitățile specificate în parametrul interval. În acest caz, intervalul poate lua următoarele valori: SELECTARE TIMESTAMPDIFF (ORĂ, „2015-09-28 10:30:20”, „2015-09-28 19:50:20”) Funcţie DATE (data ora) se întoarce data, ora limită. Exemplu: SELECTARE DATA ("2015-09-28 10:30:20") Funcţie TIME (data ora) se întoarce ora, data de decupare. Exemplu: SELECTARE ORA ("2015-09-28 10:30:20") Funcţie TIMESTAMP (data) se întoarce format complet de-a lungul timpului date data . Exemplu: TIMESTAMP("2015-09-28") ZI (data)Şi DAYOFMONTH (data). Funcții sinonime care revin numărul de ordine al zilei lunii. Exemplu: SELECTAȚI ZIUA ("2015-09-28"), DAYOFMONTH ("2015-09-28") Funcții DAYNAME (data),DAYOFWEEK (data)Şi ZIUA SĂPTĂMNICĂ (data). Prima funcție revine numele zilei săptămânii, a doua - numărul zilei săptămânii(numaratoare de la 1 - duminica la 7 - sambata), a treia este si numarul zilei saptamanii, doar o alta numaratoare inversa (numaratoare de la 0 - luni, la 6 - duminica). Exemplu: SELECTAȚI NUMELE ZIII ("2015-09-28"), DAYOFWEEK ("2015-09-28"), WEEKDAY ("2015-09-28") Funcții SĂPTĂMÂNĂ (data)Şi WEEKOFYEAR (data-ora). Ambele funcții revin numărul săptămânii din an, doar prima săptămână începe duminică, iar a doua luni. Exemplu: SELECTARE SĂPTĂMÂNĂ ("2015-09-28 10:30:20"), WEEKOFYEAR ("2015-09-28 10:30:20") Funcţie LUNA (data) se întoarce valoarea numerică a lunii(de la 1 la 12) și MONTHNAME (data) numele lunii. Exemplu: SELECTARE LUNA ("2015-09-28 10:30:20"), MONTHNAME ("2015-09-28 10:30:20") Funcţie TRIMER (data) se întoarce numărul blocului ani (de la 1 la 4). Exemplu: SELECTARE TRIMESTRE ("2015-09-28 10:30:20") Funcţie AN (data) se întoarce valoarea anului(de la 1000 la 9999). Exemplu: SELECTARE AN ("2015-09-28 10:30:20") Funcţie DAYOFYEAR (data) se întoarce numărul de serie al zilei pe an (de la 1 la 366). Grund: SELECTARE DAYOFYEAR ("2015-09-28 10:30:20") Funcţie ORA (data ora) se întoarce valoarea oră(de la 0 la 23). Exemplu: SELECTARE ORA ("2015-09-28 10:30:20") Funcţie MINUT (data-ora) se întoarce valoarea minutelor(de la 0 la 59). Exemplu: SELECTARE MINUT ("2015-09-28 10:30:20") Funcţie SECOND (data-ora) se întoarce valoarea secundelor(de la 0 la 59). Exemplu: SELECTARE SECUNDA ("2015-09-28 10:30:20") Funcţie EXTRACT (introduceți data FROM) returnează partea dată specificată de parametrul tip. Exemplu: SELECTAȚI EXTRAS (ANUL DIN „2015-09-28 10:30:20”), EXTRAS (LUNA DIN „2015-09-28 10:30:20”), EXTRAS (ZIA DIN „2015-09-28 10:30”) :20"), EXTRAS (ORĂ DE LA „2015-09-28 10:30:20”), EXTRAS (MINUT DE LA „2015-09-28 10:30:20”), EXTRAS (AL DOILEA DIN „2015-09- 28 10:30:20") Funcții reciproce TO_DAYS (data)Şi FROM_DAYS(n). Primul convertește data în număr de zile, trecut din anul zero. Al doilea, dimpotrivă, acceptă număr de zile, trecut din anul zero si le convertește în prezent. Exemplu: SELECT TO_DAYS ("2015-09-28 10:30:20"), FROM_DAYS (736234) Funcții reciproce UNIX_TIMESTAMP (data)Şi FROM_UNIXTIME(n). Primul convertește data în număr de secunde trecut de la 1 ianuarie 1970. Al doilea, dimpotrivă, acceptă număr de secunde, de la 1 ianuarie 1970 și le convertește în prezent. Exemplu: SELECT UNIX_TIMESTAMP ("2015-09-28 10:30:20"), FROM_UNIXTIME (1443425420) Funcții reciproce TIME_TO_SEC (timp)Şi SEC_TO_TIME(n). Primul convertește timpul în număr de secunde, a trecut de la începutul zilei. Al doilea, dimpotrivă, ia numărul de secunde de la începutul zilei și le transformă în timp. Exemplu: SELECTAȚI TIME_TO_SEC ("10:30:20"), SEC_TO_TIME (37820) Funcţie MAKEDATE (an, n) ia anul anul și numărul zilei din anul n și le convertește într-o dată. Exemplu.
SELECTează numele, nașterea, CURRENT_DATE, (YEAR(CURRENT_DATE)-YEAR(naștere)) - (RIGHT(CURRENT_DATE,5)
SELECT numele, nașterea FROM utilizator WHERE MONTH(naștere) = MONTH(DATA_ADD(ACUM(), INTERVAL 1 MONTH));
sau alta varianta
SELECT numele, nașterea FROM animal de companie WHERE MONTH(birth) = MOD(MONTH(NOW()), 12) + 1;
ACUM()– Returnează data și ora curente.
CURDATE()– Returnează data curentă.
CURTIME()– Revenim la ora curentă.
DATA()– Constă din două părți data și ora.
EXTRAGE()– Returnează o singură valoare de dată/ora.
DATE_ADD()– Adaugă numărul specificat de zile/minute/ore etc. la eșantion.
DATE_SUB()– Scădeți intervalul specificat de la dată.
DATEDIFF()– Returnează valoarea timpului dintre două date.
DATE_FORMAT()– Funcție pentru ieșirea diferită a informațiilor de timp.Funcții agregate
Funcții scalare
Funcții numerice
Funcții numerice Transact-SQL
Funcţie
Sintaxă
Descriere
Exemplu de utilizare
ABS
ABS(n)
ACOS, ASIN, ATAN, ATN2
ACOS(n), ASIN(n), ATAN(n), ATN2(n, m)
COS, SIN, TAN, COT
COS(n), SIN(n), TAN(n), COT(n)
GRADE, RADIANI
GRADE(n), RADIANI(n)
PLAFON
PLAFON(n)
RUNDĂ
ROUND(n, p, [t])
PODEA
FLOOR(n)
EXP
EXP(n)
LOG, LOG10
LOG(n), LOG10(n)
P.I.
PI()
PUTERE
PUTEREA(x, y)
RAND
RAND()
ROWCOUNT_BIG
ROWCOUNT_BIG()
SEMN
SEMNEZĂ(n)
SQRT, PĂTRAT
SQRT(n), SQUARE(n)
Funcții de dată
Funcții de dată Transact-SQL
Funcţie
Sintaxă
Descriere
Exemplu de utilizare
GETDATE
GETDATE()
DATEPART
DATEPART (articol, data)
DATENAME
DATENAME (articol, data)
DATEDIFF
DATEDIFF (articol, dat1, dat2)
DATEADD
DATEADD (articol, n, data)
Funcții șiruri
Funcții șiruri Transact-SQL
Funcţie
Sintaxă
Descriere
Exemplu de utilizare
ASCII, UNICODE
ASCII(car), UNICODE(car)
CHAR, NCHAR
CHAR(int), NCHAR(int)
CHARINDEX
CHARINDEX (str1, str2)
DIFERENŢĂ
DIFERENTA (str1, str2)
STÂNGA, DREAPTA
STÂNGA (str, lungime), DREAPTA (str, lungime)
LEN
LEN(str)
JOS, SUS
LOWER(str), UPPER(str)
LTRIM, RTRIM
LTRIM(str), RTRIM(str)
NUME CITATUL
QUOTENAME(șir_caracter)
PATINDEX
PATINDEX (%p%, expr)
ÎNLOCUI
ÎNLOCUIRE (str1, str2, str3)
REPLICAȚI
REPLICA (str, i)
VERSO
MARCHĂ (str)
SOUNDEX
SOUNDEX (str)
SPAŢIU
SPAȚIU (lungime)
STR
STR (f[, len[, d]])
LUCRURI
STUFF (str1, a, lungime, str2)
SUBSTRING
SUBȘIR (str1, a, lungime)
Funcțiile sistemului
Funcțiile sistemului Transact-SQL
Funcţie
Sintaxă
Descriere
Exemplu de utilizare
CAST
CAST (cu tip AS [(lungime)]
COALESCE
COALESCE (a1, a2)
COL_LENGTH
COL_LENGTH (obj, col)
CONVERTIT
CONVERTĂ (tip[(lungime)], w)
CURRENT_TIMESTAMP
CURRENT_TIMESTAMP
CURRENT_USER
CURRENT_USER
Lungimea datelor
DATALENGTH(z)
GETANSINUL
GETANSINULL(„nume db”)
ISNULL
ISNULL (expr, valoare)
ISNUMERIC
ISNUMERIC (expr)
NEWID
NEWID()
NEWSEQUENTIALID
NEWSEQUENTIALID()
NULLIF
NULLIF (expr1, expr2)
PROPRIETATE SERVER
SERVERPROPERTY (nume proprietate)
SYSTEM_USER
SYSTEM_USER
ID-UL DE UTILIZATOR
ID-UL DE UTILIZATOR()
USER_NAME
USER_NAME()
Funcții metadate
Funcții de metadate Transact-SQL
Funcţie
Sintaxă
Descriere
Exemplu de utilizare
COL_NAME
COL_NAME (fila_id, col_id)
COLUMNPROPRIETATE
COLUMNPROPERTY (id, col, proprietate)
PROPRIETATEA BAZEI DE DATE
DATABASEPROPERTY (bază de date, proprietate)
DB_ID
DB_ID()
DB_NAME
DB_NAME()
INDEX_COL
INDEX_COL (tabel, i, nu)
INDEXPROPRIETATE
INDEXPROPERTY (id_obj, nume_index, proprietate)
OBJECT_NAME
OBJECT_NAME (obj_id)
OBJECT_ID
OBJECT_ID (nume_obj)
OBJECTPROPERTY
OBJECTPROPERTY (obj_id, proprietate)
Obținerea datei și orei curente.
Rezultat: 25-09-2015 14:42:53
Rezultat: 25-09-2015
Rezultat: 14:42:53Adunarea și scăderea datelor și orelor
Rezultat: 29-09-2015 10:30:20
Rezultat: 2015-10-01 11:50:20
Rezultat: 27-09-2015 14:30:20
Rezultat: 201601
Rezultat: 28-12-2015
Rezultat: 26-09-2015 08:10:01Calcularea intervalului dintre date
Rezultat: -24:10:00
Rezultat: 1
Rezultat: 9
Rezultat: 9Preluarea diferitelor formate de dată și oră și alte informații
Rezultat: 28-09-2015
Rezultat: 10:30:20
Rezultat: 28-09-2015 00:00:00
Rezultat: 28 | 28
Rezultat: luni 2 | 0
Rezultat: 39 | 40
Rezultat: 9 | septembrie
Rezultat: 3
Rezultat: 2015
Rezultat: 271
Rezultat: 10
Rezultat: 30
Rezultat: 20
Rezultat: 2015 | 9 | 28 | 10 | 30 | 20
Rezultat: 736234 | 28-09-2015
Rezultat: 1443425420 | 28-09-2015 10:30:20
Rezultat: 37820 | 10:30:20