Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-adatbázis a Microsoft Fabricben
Dátumot határoz meg az SQL Serverben. Az SQL Server 2008 -ban (10.0.x) bevezették az adattípust .
Dátumleírás
| Property | Value |
|---|---|
| Syntax | DATE |
| Usage | DECLARE @MyDate DATECREATE TABLE Table1 (Column1 DATE) |
| Alapértelmezett sztringkonstansformátum (alacsonyabb szintű ügyfélhez használatos) |
yyyy-MM-ddTovábbi információkért tekintse meg a visszafelé kompatibilitás a alacsonyabb szintű ügyfelek esetében című szakaszt. |
| Range |
0001-01-01 keresztül 9999-12-31 (1582-10-15 az 9999-12-31 Informatica számára)Január 1, 1 CE (Common Era) december 31, 9999 CE (október 15, 1582 CE december 31, 9999 CE for Informatica) |
| Elemtartományok |
yyyy négy számjegyből áll 00019999 , amelyek egy évet jelölnek. Az informatica a tartományt a következő értékre yyyy1582korlátozza9999: .MM a megadott év egy hónapjának két számjegye 0112 .dd a hónaptól függően két számjegy 0131, amely a megadott hónap egy napját jelöli. |
| Karakterhossz | 10 pozíció |
| Precizitás, méretarány | 10, 0 |
| Tárterület mérete | 3 bájt, javítva |
| Tárolási struktúra | egy 3 bájtos egész szám üzletek dátuma |
| Accuracy | Egy napon |
| Alapértelmezett érték | 1900-01-01Ez az érték a hozzáfűzött dátumrészhez használatos az időrőldatetime2 vagy datetimeoffset közötti implicit átalakításra. |
| Calendar | Gregorian |
| Felhasználó által definiált tört másodperc pontossága | No |
| Időzóna-eltolás tudatosítása és megőrzése | No |
| Nyári időszámítás | No |
A dátumhoz támogatott sztringkonstansformátumok
Az alábbi listák a dátum adattípus érvényes sztringkonstansformátumát jelenítik meg.
[m]m, ddés [yy]yy egy sztringben a hónap, a nap és az év értékét jelöli, elválasztóként pedig perjelekkel (/), kötőjelekkel (-) vagy pontokkal (.).
Csak négyjegyű vagy kétjegyű év támogatott. Ha lehetséges, használjon négyjegyű éveket. Ha egy egész számot 00019999 szeretne megadni, amely a kétjegyű év négyjegyű évként való értelmezéséhez a kivágás évét jelöli, használja a kétjegyű év kivágás kiszolgálójának konfigurációs beállítását.
Az Informatica yyyy esetében a tartomány 1582 a következőre korlátozódik 9999: .
A kétjegyű év, amely kisebb vagy egyenlő a kivágás évének utolsó két számjegyével, ugyanabban az évszázadban van, mint a leépítési év. A leépítési év utolsó két számjegyénél nagyobb kétjegyű év a leépítési év előtti évszázadban van. Ha például a kétjegyű év leépítése az alapértelmezett 2049érték, a kétjegyű évet a rendszer a következőképpen értelmezi49, a kétjegyű évet 204950 pedig a rendszer a következőképpen értelmezi1950.
Az aktuális nyelvi beállítás határozza meg az alapértelmezett dátumformátumot. A dátumformátumot a SET LANGUAGE és a SET DATEFORMAT utasításokkal módosíthatja .
A ydm formátum nem támogatott a dátumhoz.
Sztringkonstans-formátumok hónap-nap évre
SET DATEFORMAT mdy;
[m]m/dd/[yy]yy[m]m-dd-[yy]yy
Sztringkonstans-formátumok hónap-év naphoz
SET DATEFORMAT myd;
[m]m/[yy]yy/dd[m]m-[yy]yy-dd[m]m.[yy]yy.dd
Sztringkonstansformátumok egynapos hónapra
SET DATEFORMAT dmy;
dd/[m]m/[yy]yydd-[m]m-[yy]yydd.[m]m.[yy]yy
Sztringkonstans-formátumok az év minden napján
SET DATEFORMAT dym;
dd/[yy]yy/[m]mdd-[yy]yy-[m]mdd.[yy]yy.[m]m
Sztringkonstans-formátumok az év-hónap naphoz
SET DATEFORMAT ymd;
[yy]yy/[m]m/dd[yy]yy-[m]m-dd[yy]yy-[m]m-dd
Formátumok betűrendes listája
[dd] mon[,] yyyydd mon[,][yy]yydd [yy]yy mon[dd] yyyy monmon [dd][,] yyyymon dd[,] [yy]mon yyyy [dd]yyyy mon [dd]yyyy [dd] mon
mon az aktuális nyelven megadott teljes hónapnevet vagy a hónap rövidítését jelöli. A vesszők megadása nem kötelező, a nagybetűket pedig figyelmen kívül hagyja a rendszer.
A kétértelműség elkerülése érdekében használjon négyjegyű éveket.
Ha a nap hiányzik, a hónap első napja lesz megadva.
ISO 8601 formátumok listája
yyyy-MM-ddyyyyMMdd
Ugyanaz, mint az SQL-szabvány. Ez a formátum az egyetlen nemzetközi szabványként definiált formátum.
Formátumok nem formázott listája
[yy]yyMMddyyyy[MMdd]
A dátumadatok négy, hat vagy nyolc számjegyből adhatók meg. A hatjegyű vagy nyolcjegyű sztringeket a rendszer mindig a következőképpen ymdértelmezi. A hónapnak és a napnak mindig két számjegyből kell lennie. A rendszer egy négyjegyű sztringet évként értelmez.
ODBC dátumformátum
{ d 'yyyy-MM-dd' }
ODBC API-specifikus.
W3C XML-dátumformátum
yyyy-MM-ddTZD
XML-/SOAP-használat esetén támogatott.
TZD az időzóna-tervező (Z vagy +hh:mm-hh:mm):
hh:mmaz időzóna eltolását jelöli.hhkét számjegy, amelyek az014időzóna-eltolásban lévő órák számát jelölik.mmkét számjegy, amelyek az059időzóna eltolásában lévő további percek számát jelölik.+(plusz) vagy-(mínusz) az időzóna eltolásának kötelező jele. Ez a jel azt jelzi, hogy a helyi idő lekéréséhez az időzóna eltolása hozzáadódik vagy kivonódik az egyezményes világidő (UTC) időből. Az időzóna-eltolás érvényes tartománya a következő:-14:00+14:00.
ANSI és ISO 8601 megfelelőség
a dátum megfelel a Gergely-naptár ANSI SQL standard definíciójának:
A dátum/idő adattípusok lehetővé teszik a Gergely-formátumú dátumok tárolását a 0001-01-01 CE-9999-12-31 CE dátumtartományban.
A lefelé irányuló ügyfelekhez használt alapértelmezett sztringkonstansformátum megfelel a definiált SQL standard űrlapnak yyyy-MM-dd. Ez a formátum megegyezik a ISO 8601 definíciójának formátumával DATE.
Note
Az Informatica esetében a tartomány (1582. október 15. CE) és 1582-10-15 (9999. december 31. CE) között van korlátozva 9999-12-31 .
Visszamenőleges kompatibilitás alacsonyabb szintű ügyfelek esetén
Egyes alacsonyabb szintű ügyfelek nem támogatják az idő, a dátum, a datetime2 és a datetimeoffset adattípust . Az alábbi táblázat az SQL Server egy magasabb szintű példánya és a alacsonyabb szintű ügyfelek közötti típusleképezést mutatja be.
| SQL Server-adattípus | Az alapértelmezett sztringkonstansformátum átadva a leszintű ügyfélnek | Alacsonyabb szintű ODBC | Alacsonyabb szintű OLEDB | Alacsonyabb szintű JDBC | Alacsonyabb szintű SQLCLIENT |
|---|---|---|---|---|---|
| time | hh:mm:ss[.nnnnnnn] |
SQL_WVARCHAR vagy SQL_VARCHAR |
DBTYPE_WSTR vagy DBTYPE_STR |
Java.sql.String |
String vagy SqString |
| date | yyyy-MM-dd |
SQL_WVARCHAR vagy SQL_VARCHAR |
DBTYPE_WSTR vagy DBTYPE_STR |
Java.sql.String |
String vagy SqString |
| datetime2 | yyyy-MM-dd HH:mm:ss[.nnnnnnn] |
SQL_WVARCHAR vagy SQL_VARCHAR |
DBTYPE_WSTR vagy DBTYPE_STR |
Java.sql.String |
String vagy SqString |
| datetimeoffset | yyyy-MM-dd HH:mm:ss[.nnnnnnn] [+ or -]hh:mm |
SQL_WVARCHAR vagy SQL_VARCHAR |
DBTYPE_WSTR vagy DBTYPE_STR |
Java.sql.String |
String vagy SqString |
Dátum- és időadatok konvertálása
A dátum- és idő típusú adattípusokká alakításkor az SQL Server elutasítja az összes olyan értéket, amelyet nem ismer fel dátumként vagy időpontként. A CAST és CONVERT függvények dátum- és időadatokkal való használatáról a CAST és CONVERTcímű témakörben olvashat.
Dátum átalakítása más dátum- és időtípusokra
Ez a szakasz azt ismerteti, hogy mi történik, ha egy dátumadattípust más dátum- és időadattípusokká konvertál.
Ha az átalakítás idő(n), az átalakítás meghiúsul, és a 206-os hibaüzenet jelenik meg:
Operandus típusú perjel: a dátum nem kompatibilis az idővel.
Ha az átalakítás dátum/idő értékre történik, a program átmásolja a dátumösszetevőt. Az alábbi kód egy dátumérték dátum/idő értékké alakításának eredményeit mutatja be.
DECLARE @date AS DATE = '12-10-25';
DECLARE @datetime AS DATETIME = @date;
SELECT @date AS '@date',
@datetime AS '@datetime';
Itt van az eredmények összessége.
@date @datetime
---------- -----------------------
2025-12-10 2025-12-10 00:00:00.000
Ha az átalakítás kisdátumidőre történik, a dátumérték egy kisdátumtartományban van, a dátumösszetevőt átmásolja, az időösszetevő pedig a következőre 00:00:00.000van állítva. Ha a dátumérték kívül esik egy kisdátumérték tartományán, a rendszer a 242-s hibaüzenetet adja meg, a smalldatetime értéke pedig a következőre NULLvan állítva:
A dátum adattípus kisdátum-adattípusra való konvertálása tartományon kívüli értéket eredményezett.
Az alábbi kód egy dátumértékkisdátum-értékké alakításának eredményeit mutatja be.
DECLARE @date AS DATE = '1912-10-25';
DECLARE @smalldatetime AS SMALLDATETIME = @date;
SELECT @date AS '@date',
@smalldatetime AS '@smalldatetime';
Itt van az eredmények összessége.
@date @smalldatetime
---------- -------------------
1912-10-25 1912-10-25 00:00:00
A datetimeoffset(n)-ra való konvertáláshoz a program kimásolja a dátumot, és az idő a következőre 00:00.0000000 +00:00van állítva. Az alábbi kód egy dátumértékdatetimeoffset(3) értékké alakításának eredményeit mutatja be.
DECLARE @date AS DATE = '1912-10-25';
DECLARE @datetimeoffset AS DATETIMEOFFSET (3) = @date;
SELECT @date AS '@date',
@datetimeoffset AS '@datetimeoffset';
Itt van az eredmények összessége.
@date @datetimeoffset
---------- ------------------------------
1912-10-25 1912-10-25 00:00:00.000 +00:00
Ha az átalakítás datetime2(n) értékre történik, a program a dátumösszetevőt másolja át, és az időösszetevőt a következőre 00:00.000000állítja. Az alábbi kód egy dátumérték dátum/idő2(3) értékké alakításának eredményeit mutatja be.
DECLARE @date AS DATE = '1912-10-25';
DECLARE @datetime2 AS DATETIME2 (3) = @date;
SELECT @date AS '@date',
@datetime2 AS '@datetime2(3)';
Itt van az eredmények összessége.
@date @datetime2(3)
---------- -----------------------
1912-10-25 1912-10-25 00:00:00.000
Sztringkonstansok konvertálása dátumra
A sztringkonstansokból a dátum- és időtípusokba való konvertálás akkor engedélyezett, ha a sztringek minden része érvényes formátumban van. Ellenkező esetben futásidejű hiba jelentkezik. A stílust nem meghatározó implicit konverziók vagy explicit konverziók a dátum- és időtípusoktól a sztringkonstansokig az aktuális munkamenet alapértelmezett formátumában vannak. Az alábbi táblázat a sztringkonstans dátum adattípussá alakításának szabályait mutatja be.
| Bemeneti sztring literálja | date |
|---|---|
| ODBC DÁTUMA | Az ODBC-sztringkonstansok a datetime adattípusra vannak leképezve. Az ODBC DATETIME-literálokból egy dátumtípusba történő hozzárendelési művelet implicit konverziót okoz a dátum és a konverziós szabályok által definiált típus között. |
| ODBC IDŐ | Lásd az előző ODBC DATE szabályt. |
| ODBC DÁTUMIDŐPONTJA | Lásd az előző ODBC DATE szabályt. |
| Csak DÁTUM | Trivial |
| Csak IDŐ | A rendszer alapértelmezett értékeket ad meg. |
| Csak IDŐZÓNA | A rendszer alapértelmezett értékeket ad meg. |
| DÁTUM + IDŐ | A bemeneti sztring DATE részét használja a rendszer. |
| DÁTUM + IDŐZÓN | Tilos. |
| IDŐ + IDŐZÓNA | A rendszer alapértelmezett értékeket ad meg. |
| DÁTUM + IDŐ + IDŐZÓNA | A rendszer a helyi DATETIME DÁTUM részét használja. |
Examples
Az alábbi példa összehasonlítja a sztringek minden dátum- és idő típusú adattípushoz való beírásának eredményeit.
SELECT CAST ('2022-05-08 12:35:29.1234567 +12:15' AS TIME (7)) AS 'time',
CAST ('2022-05-08 12:35:29.1234567 +12:15' AS DATE) AS 'date',
CAST ('2022-05-08 12:35:29.123' AS SMALLDATETIME) AS 'smalldatetime',
CAST ('2022-05-08 12:35:29.123' AS DATETIME) AS 'datetime',
CAST ('2022-05-08 12:35:29.1234567 +12:15' AS DATETIME2 (7)) AS 'datetime2',
CAST ('2022-05-08 12:35:29.1234567 +12:15' AS DATETIMEOFFSET (7)) AS 'datetimeoffset';
Itt van az eredmények összessége.
| Adattípus | Output |
|---|---|
| time | 12:35:29.1234567 |
| date | 2022-05-08 |
| smalldatetime | 2022-05-08 12:35:00 |
| datetime | 2022-05-08 12:35:29.123 |
| datetime2 | 2022-05-08 12:35:29.1234567 |
| datetimeoffset | 2022-05-08 12:35:29.1234567 +12:15 |