SQLShack (Magyar)

SQL dátumformátum-funkciók, például a DateDiff Az SQL függvényt és a DateAdd SQL függvényt gyakran használják a DBA-k, de sokan közülünk soha nem fordítottak időt arra, hogy teljesen megértsük ezeket a rendkívül hasznos szolgáltatásokat. Az SQL Server használatát most kezdő szakemberek számára ezek a funkciók az elsők között ismerkednek meg. Tehát remélhetőleg ez a cikk mindenkinek tartalmaz egy kis valamit a készség spektrumban.

Az egyik legérdekesebb adattípus, amelyet a relációs adatbázis-világ támogat, a DateTime. Ebben a cikkben áttekintjük a dátum és idő adattípusainak kezelését az SQL Server rendszerben. Megértjük a dátum-idő adattípus alapjait, valamint számos példát láthatunk arról, hogyan lehet lekérdezni a dátum-idő mezőket az SQL Server beépített függvényeivel az adatok manipulálásához, a dátum-idő értékek átalakításához és néhány esetben végezzen számtani műveleteket.

Először nézzük meg néhány népszerű SQL dátumformátum és időfunkciót.

Alapértelmezés szerint az SQL Server eredendően támogatja a nyelveket amelyeket a Windows operációs rendszer támogat. Az SQL Server telepítésekor a területi beállításoktól és a leválogatás beállításaitól függően az SQL dátumformátum megjelenése eltérő lehet. A lejátszani kívánt adatok típusát a területi beállítás és az SQL Server összeállításának beállítása határozza meg.

Az SQL Server szolgáltatásban a DATE adattípusnak két alapértelmezett semleges nyelvi formátuma van

  1. ÉÉÉÉHHNN

    A következő példa a HumanResource .A munkavállalói tábla lekérdezésével megtekintheti a HireDate értékek SQL dátumformátumát

    1
    2
    3
    4
    5
    6

    HASZNÁLJA az AdventureWorks2014-et;
    GO
    SELECT HireDate, BusinessEntityID, LoginID, JobTitle
    FROM HumanResources.Employee;
    GO

    Most kérdezzen a HireDate oszlopot semleges nyelvi formátumban. A lekérdezésben egész számot adunk át, amely a 2008-as évből áll; hónap, 12. és a 7. nap.

    1
    2
    3

    SELECT HireDate, BusinessEntityID, LoginID, JobTitle
    FROM HumanResources.Employee
    WHERE HireDate = “20081207”;

    Megjegyzés: Ez alapvetően azt jelenti, hogy a bemeneti érték numerikus; az SQL motor belsõen átalakítja, és végül egy karakterértékkel jut el. Tehát egyes idézőjelek veszik körül.

  2. HH-NN-ÉÉÉÉ (USA-alapú formátum)

    Ebben az SQL dátumformátumban a A HireDate oszlopot az MM-DD-YYYY értékekkel látja el. Ez nem egész formátum. Futtassuk ugyanazt a lekérdezést a ’12 -07-2008 beviteli érték új SQL dátumformátumával a HireDate oszlopba. Futtassuk tehát a következő lekérdezést, és ellenőrizzük a kimenetet. A kimenet ugyanaz az öt rekordkészlet.

    1
    2
    3
    4

    SELECT HireDate, BusinessEntityID, LoginID, JobTitle
    FROM HumanResources.Employee
    WHERE HireDate = “2008-07-12”;
    GO

    Megjegyzés: A semleges nyelvi formátumértékek implicitek, és az SQL Server elvégzi a szükséges átalakítást. Bármely más SQL dátumformátum megköveteli az operandusok és / és értékek megfelelő átalakítását.

A következő példákban hibaüzenet jelenik meg az SQL dátumformátum nem megfelelő használata miatt.

1
2
3

SELECT HireDate, BusinessEntityID, LoginID, JobTitle
FROM HumanResources.Employee
WHERE HireDate = “2008-12-25 “;

Most mind az operandus, mind az értékei átalakulnak egy szabványos 103 formátumba. Itt további információkat talál a CAST és a Konvertálás funkciókról.A következő példa az alkalmazott összes sorát adja vissza, ahol a HireDate 25 -12-2008

Most nézzük meg kezdje el áttekinteni azokat a dátumfüggvényeket, amelyeket az SQL Server elérhetővé tesz számunkra, és ezek a dátumfüggvények lehetővé teszik számunkra, hogy dolgozzunk a dátumok különböző részeivel, sőt manipulálhatunk néhány olyan funkciót, amellyel a dátumok szempontjából dolgozhatunk.

Nézzük meg a DATEPART SQL függvényt. Ez a függvény egész számot ad vissza a megadott dátum oszlopból.

A HireDate oszlop lekérdezésével csak a dátum évrészét adja vissza.

Az alábbi példa létrehoz egy egész számú kimeneti oszlopot, és ez csak az évértékeket adja vissza

1
2
3

DATEPART (ÉV, HireDate) KIVÁLASZTÁSA AS
FROM HumanResources.Employee;
GO

A HireDate lekérdezése oszlop csak a dátum havi részét adja vissza

Az alábbi példa egy egész számú kimeneti oszlopot hoz létre, amelynek csak a hónap értékeit kell visszaadnia

1
2

DATEPART (HÓNAP, HireDate) KIVÁLASZTÁSA
A HumanResources-tól. Alkalmazott;

A HireDate oszlop lekérdezésével csak a a dátum

Az alábbi példa egy egész számú kimeneti oszlopot generál, amelynek neve csak a hónap értékeit adja vissza.

1
2
3

SELECT DATEPART (QUARTER, HireDate) AS
FROM HumanResources.Employee;
GO

A következő példa visszaadja a orderDate mező adott napjának értékesítési részleteit. A példa bemutatja a DATEPART SQL függvény használatát és annak néhány társított argumentumát is.

A SELECT utasítás kiválasztja a DATEPART-ot, amely a függvény neve, és két argumentumot tartalmaz a zárójelben. Először a datepart argumentum, a második pedig a date kifejezés.

Vessünk egy pillantást a DATENAME SQL függvény használatára. Ez hasonló a DATEPART SQL függvényhez, de karakterláncot ad vissza a megadott dátummezőből.

Ezután vessünk egy pillantást azokra a determinisztikus függvényekre, amelyek a dátum és idő részeket egész értékként adják vissza. A következő példa egész számokat ad vissza a OrderDate mezőből a megfelelő YEAR és MONTH függvényekhez.

A kimenet a TotalSales összesített értéke a havi eladások alapján.

Most vegyük egy pillantás néhány más különböző funkcióra. És ezt megnézzük DATEDIFF néven. A DATEDIFF SQL függvény egy aláírt egész értéket ad vissza, amely lehetővé teszi számunkra a két dátum közötti eltelt idő meghatározását.

Játsszunk a lekérdezéssel, hogy különböző dátumrészeket használjunk az eredmények megtekintéséhez.

Az alábbi példa a két DateTime mező közötti időrészeket adja vissza. Ebben a példában a DateTime értékek közötti órákat, perceket és másodperceket a DATEDIFF SQL függvény segítségével számítják ki

Hogyan a DATEDIFF SQL függvény használatához a where záradék

Az alábbi példa visszaadja azokat az alkalmazottakat, akik több mint 10 éve dolgoznak a szervezetnél. A HireDate oszlop feltételes logikáját összehasonlítják a 120 hónapnál hosszabb logikával, ahol a holmondat szerepel.

1
2
3
4

SELECT *
FROM HumanResources.Employee
WHERE DATEDIFF (MONTH, HireDate, GETDATE ()) > 120;
GO

A DateDiff SQL függvény használata összesített függvénnyel

A következő példa az első bérleti nap közötti évek számát adja vissza és az utolsó bérleti dátum. Ebben az esetben a DATEDIFF SQL függvény bemeneti paramétereként használt minimális HireDate és maximális HireDate összesített függvényt keressük.Ezekkel az értékekkel könnyen meg lehet találni, hány év volt az első bérlet és az utolsó bérlet között.

1
2

SELECT DATEDIFF (ÉV, MIN (HireDate), MAX (HireDate)) No_Of_Years
FOLYAN HumanResources.Munkavállaló;

Vessünk egy pillantást a DATEADD SQL függvényre. A függvények hozzáadják vagy kivonják az értéket a megadott adatrészhez, és visszaadják az adatrész módosított értékét.

Vessünk egy pillantást a következő példára. Az 1 értéket hozzáadjuk a különféle adatrészhez, a -1 értéket hozzáadjuk az órás adatrészhez, és a -30 értéket hozzáadjuk a perc adatrészhez.

A kimenetben láthatjuk, hogy az értéket a GETDATE () függvény a megadott adatrész szerint.

Megjegyzés: A DATEADD és a DATEDIFF SQL függvények használhatók a SELECT-ben, WHERE, HAVING, GROUP BY és ORDER BY záradékok.

Datadiff vs Datediff_BIG

Ez az SQL dátum formátumú cikk egyelőre ennyi …

Összefoglalás

Eddig nagyon fontos SQL dátumformátum-függvényeket láttunk, például DATEPART, DATENAME, YEAR, MONTH és DAY, különös hangsúlyt fektetve a DATEADD SQL és a DATEDIFF SQL függvényekre. Az SQL szerver SQL dátumformátum-funkciói valóban hatékonyak, és valóban hatásos adatelemzéseket és jelentéseket nyújtanak. Bizonyos esetekben a válogatás beállításainak, a helybeállításoknak a módosításáról, a szöveges érték beviteli adatfolyamának egyszerű beállításáról vagy az adatforrás korrekciójáról elegendő a dátum és idő probléma.

Javasoljuk a semleges nyelvi formátum használatát, mert a legtöbb esetben jobban működik. Végül látjuk a különbséget a DATEDIFF SQL és a DATEDIFF_BIG SQL függvény között. Remélem tetszik ez a cikk. Ha bármilyen kérdése van, nyugodtan írjon megjegyzést alább.

  • Szerző
  • Legutóbbi bejegyzések
Adatbázistechnológus vagyok, több mint 11 éves gazdag, gyakorlati tapasztalattal az adatbázis-technológiák terén. Microsoft Certified Professional vagyok, és a számítógépes alkalmazás mester fokozatával rendelkezem.
A szakterületem a & magas rendelkezésre állású megoldások és a platformokon átnyúló DB Migration megvalósításában rejlik. A jelenleg működő technológiák az SQL Server, a PowerShell, az Oracle és a MongoDB.
Prashanth Jayaram összes üzenetének megtekintése

Prashanth Jayaram legújabb bejegyzései (az összes megtekintése)
  • Az SQL audit gyors áttekintése – 2021. január 28.
  • Az Azure Data Sync beállítása az Azure SQL adatbázisok és a helyszíni SQL Server között – 2021. január 20.
  • Az Azure SQL adatbázis import / export műveletek végrehajtása a PowerShell használatával – január 14. , 2021

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük