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
Egy nap időpontját határozza meg. Az idő nem időzóna-tudatosságú, és 24 órás órára épül.
Note
Az Informatica-információkat a PDW-ügyfelek az Informatica Connector használatával biztosítják.
Időleírás
| Property | Value |
|---|---|
| Syntax | time [ (tört második skálázás) ] |
| Usage | DEKLARÁL @MyTime idő(7) KÉSZÍTSD TÁBLÁZAT 1 (1. oszlop idő(7) ) |
| tört másodperc skálázása | A másodperc tört részének számjegyeinek számát adja meg. Ez lehet 0 és 7 közötti egész szám. Az Informatica esetében ez 0 és 3 közötti egész szám lehet. Az alapértelmezett törtméret 7 (100ns). A Microsoft Fabricben ez lehet 0 és 6 közötti egész szám, alapértelmezett érték nélkül. A pontosságot a Microsoft Fabricben kell megadni. |
| Alapértelmezett sztringkonstansformátum (alacsonyabb szintű ügyfélhez használatos) |
hh:mm:ss[.nnnnnnn] az Informatica számára) További információkért lásd a Visszafelé kompatibilitás a alacsonyabb szintű ügyfelekhez című szakaszt . |
| Range | 00:00:00.0000000–23:59:59.99999999 (Informatica esetén 00:00:00.000–23:59:59.999) |
| Elemtartományok | A hh két számjegyből áll, 0 és 23 között, amelyek az órát jelölik. mm két számjegy, 0 és 59 között, amelyek a percet jelölik. az ss két számjegy, 0 és 59 között, amelyek a másodikat jelölik. n* nulla és hét számjegy között 0 és 9999999, amelyek a tört másodpercet jelölik. Az Informatica esetében az n* nulla és három számjegy között van, 0 és 999 között. |
| Karakterhossz | 8 pozíció minimum (óó:mm:ss) legfeljebb 16 (óó:mm:ss.nnnnnnnn). Az Informatica esetében a maximális érték 12 (óó:mm:ss.nnn). |
| Precizitás, méretarány (a felhasználó csak a skálázást adja meg) |
Lásd az alábbi táblázatot. |
| Tárterület mérete | A rögzített 5 bájt az alapértelmezett érték 100ns tört másodperces pontossággal. Az Informatica-ban az alapértelmezett érték 4 bájt, rögzített, az alapértelmezett érték 1ms tört másodperces pontosság. |
| Accuracy | 100 nanoszekundum (1 ezredmásodperc az Informatica-ban) |
| Alapértelmezett érték | 00:00:00 Ez az érték a hozzáfűzött időrészhez használatos a dátumróldatetime2 vagy datetimeoffset közötti implicit átalakításra. |
| Felhasználó által definiált tört másodperc pontossága | Yes |
| Időzóna-eltolás tudatosítása és megőrzése | No |
| Nyári időszámítás | No |
| Megadott skálázás | Eredmény (pontosság, skálázás) | Oszlophossz (bájt) | Fractional seconds pontosság |
|---|---|---|---|
| time | (16,7) [(12,3) Informatica] | 5 (4 az Informatica-ban) | 7 (3 az Informatica-ban) |
| time(0) | (8,0) | 3 | 0-2 |
| time(1) | (10,1) | 3 | 0-2 |
| time(2) | (11,2) | 3 | 0-2 |
| time(3) | (12,3) | 4 | 3-4 |
| idő(4)* | (13,4) | 4 | 3-4 |
| time(5)* | (14,5) | 5 | 5-7 |
| time(6)* | (15,6) | 5 | 5-7 |
| time(7)* + | (16,7) | 5 | 5-7 |
* Az Informatica nem támogatja.
+ A Microsoft Fabric nem támogatja.
Támogatott sztringkonstansformátumok az időhöz
Az alábbi táblázat az időadat-típus érvényes sztringkonstans-formátumát mutatja be.
| SQL Server | Description |
|---|---|
| hh:mm[:ss][:tört másodpercek][AM][PM] hh:mm[:ss][.töredékes másodpercek][AM][PM] hhAM[PM] hh AM[PM] |
A 0 óraérték az éjfél utáni órát (AM) jelöli, függetlenül attól, hogy az AM meg van-e adva. A PM nem adható meg, ha az óra értéke 0. A 01-től 11-ig tartó óraértékek a dél előtti órákat jelölik, ha sem am, sem pm nincs megadva. Az értékek az AM megadásakor a dél előtti órákat jelölik. Az értékek dél után órákat jelölnek, ha a PM meg van adva. A 12 órás érték azt az órát jelöli, amely délben kezdődik, ha sem am, sem pm nincs megadva. Ha az AM meg van adva, az érték az éjfélkor kezdődő órát jelöli. Ha a PM meg van adva, az érték a délben kezdődő órát jelöli. A 12:01 például dél után 1 perccel, 12:01-kor; és 12:01 éjfél után egy perccel. A 12:01-et ugyanaz adja meg, mint a 00:01 vagy 00:01 óra. A 13 és 23 óra közötti óraértékek dél után órákat jelölnek, ha nincs megadva am vagy PM. Az értékek a pm megadásakor a dél utáni órákat is jelölik. Az AM nem adható meg, ha az óra értéke 13 és 23 között van. A 24 órás érték érvénytelen. Az éjféli ábrázoláshoz használjon 12:00-t vagy 00:00-t. Ezredmásodperc előtt kettőspont (:) vagy pont (.). Kettőspont használata esetén a szám másodpercenként ezredmásedik értéket jelent. Pont használata esetén egy számjegy a másodperc tizedét, a két számjegy a másodperc századát, a három számjegy pedig a másodperc ezredrészét jelenti. A 12:30:20:1 például 20 és 10 ezredmásedik másodpercet jelez 12:30 után; A 12:30:20.1 20 és egytized másodpercet jelez 12:30 után. |
| ISO 8601 | Notes |
|---|---|
| hh:mm:ss hh:mm[:ss][.töredékes másodpercek] |
Az óó két számjegy, 0 és 23 között, amelyek az időzóna eltolásában lévő órák számát jelölik. mm két számjegy, 0 és 59 között, amelyek az időzóna-eltolás további perceinek számát jelölik. |
| ODBC | Notes |
|---|---|
| {t 'hh:mm:ss[.tört másodperc]'} | ODBC API-specifikus. |
Az ANSI és az ISO 8601 szabványoknak való megfelelés
A 24. óra az ISO 8601 (5.3.2 és 5.3) által meghatározott éjféli és 59-esnél nagyobb ugrást nem támogatja, hogy visszamenőlegesen kompatibilis legyen, és összhangban legyen a meglévő dátum- és időtípusokkal.
Az alapértelmezett (alacsonyabb szintű ügyfélhez használt) sztringkonstansformátum igazodik az SQL standard űrlaphoz, amely hh:mm:ss[.nnnnnnnnn] néven van definiálva. Ez a formátum az IDŐ ISO 8601-definícióhoz hasonlít, a tört másodpercek kivételével.
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_WSTRor DBTYPE_STR | Java.sql.String | Sztring vagy SqString |
| date | YYYY-MM-DD | SQL_WVARCHAR vagy SQL_VARCHAR | DBTYPE_WSTRor DBTYPE_STR | Java.sql.String | Sztring vagy SqString |
| datetime2 | YYYY-MM-DD hh:mm:ss[.nnnnnnn] | SQL_WVARCHAR vagy SQL_VARCHAR | DBTYPE_WSTRor DBTYPE_STR | Java.sql.String | Sztring vagy SqString |
| datetimeoffset | YYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm | SQL_WVARCHAR vagy SQL_VARCHAR | DBTYPE_WSTRor DBTYPE_STR | Java.sql.String | Sztring 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 azokat az értékeket, amelyek nem ismerhetők fel dátumként vagy időpontként. A CAST és a CONVERT függvények dátum- és időadatokkal való használatáról a CAST és a CONVERT (Transact-SQL) című témakörben talál további információt.
Idő(n) adattípus átalakítása más dátum- és időtípusokká
Ez a szakasz azt ismerteti, hogy mi történik, ha egy időadat-típust más dátum- és időadattípusokká konvertálnak.
Ha az átalakítás idő(n) értékre történik, a program az órát, a percet és a másodpercet másolja ki. Ha a cél pontossága kisebb, mint a forrás pontossága, a tört másodperc felfelé kerekítve lesz a cél pontosságának megfelelően. Az alábbi példa egy time(4) érték time(3) értékké alakításának eredményeit mutatja be.
DECLARE @timeFrom TIME(4) = '12:34:54.1237';
DECLARE @timeTo TIME(3) = @timeFrom;
SELECT @timeTo AS 'time(3)', @timeFrom AS 'time(4)';
Itt van az eredmények összessége.
time(3) time(4)
------------ -------------
12:34:54.124 12:34:54.1237
Ha a konvertálás a mai napig érvényes, az átalakítás sikertelen lesz, és a 206-os hibaüzenet jelenik meg: "Operandus típusú ütközés: a dátum nem kompatibilis az idővel".
Ha az átalakítás dátum/idő, óra, perc és második értékre van másolva; és a dátum összetevő értéke "1900-01-01". Ha az idő(n) érték tört másodperces pontossága nagyobb három számjegynél, a dátum/idő eredmény csonkolt lesz. Az alábbi kód egy time(4) érték datetime értékké alakításának eredményeit mutatja be.
DECLARE @time TIME(4) = '12:15:04.1237';
DECLARE @datetime DATETIME = @time;
SELECT @time AS '@time', @datetime AS '@datetime';
Itt van az eredmények összessége.
@time @datetime
------------- -----------------------
12:15:04.1237 1900-01-01 12:15:04.123
Ha az átalakítás kisdátumidőre történik, a dátum "1900-01-01" értékre van állítva, és az óra- és percértékek fel vannak kerekítve. A másodperc és a tört másodperc értéke 0. Az alábbi kód egy time(4) érték smalldatetime értékké alakításának eredményeit mutatja be.
A percérték felfelé kerekítésének megjelenítése:
DECLARE @time TIME(4) = '12:15:59.9999';
DECLARE @smalldatetime SMALLDATETIME = @time;
SELECT @time AS '@time', @smalldatetime AS '@smalldatetime';
Itt van az eredmények összessége.
@time @smalldatetime
---------------- -----------------------
12:15:59.9999 1900-01-01 12:16:00--
Az óraérték felfelé kerekítésének megjelenítése:
DECLARE @time TIME(4) = '12:59:59.9999';
DECLARE @smalldatetime SMALLDATETIME = @time;
SELECT @time AS '@time', @smalldatetime AS '@smalldatetime';
Itt van az eredmények összessége.
@time @smalldatetime
---------------- -----------------------
12:59:59.9999 1900-01-01 13:00:00
Ha az átalakítás datetimeoffset(n)-ra történik, a dátum értéke "1900-01-01", és a program kimásolja az időt. Az időzóna eltolása +00:00 értékre van állítva. Ha az idő(n) érték tört másodperces pontossága nagyobb, mint a datetimeoffset(n) érték pontossága, az érték felfelé kerekítve lesz, hogy illeszkedjen. Az alábbi példa egy érték típussá time(4) alakításának datetimeoffset(3) eredményeit mutatja be.
DECLARE @time TIME(4) = '12:15:04.1237';
DECLARE @datetimeoffset DATETIMEOFFSET(3) = @time;
SELECT @time AS '@time', @datetimeoffset AS '@datetimeoffset';
Itt van az eredmények összessége.
@time @datetimeoffset
------------- ------------------------------
12:15:04.1237 1900-01-01 12:15:04.124 +00:00
A datetime2(n)-ra való konvertáláskor a dátum értéke "1900-01-01", az időösszetevő másolása, az időzóna eltolása pedig 00:00. Ha a datetime2(n) érték tört másodperces pontossága nagyobb, mint az idő(n) érték, az érték felfelé kerekítve lesz, hogy illeszkedjen. Az alábbi példa egy time(4) érték datetime2(2) értékké alakításának eredményeit mutatja be.
DECLARE @time TIME(4) = '12:15:04.1237';
DECLARE @datetime2 DATETIME2(3) = @time;
SELECT @datetime2 AS '@datetime2', @time AS '@time';
Itt van az eredmények összessége.
@datetime2 @time
----------------------- -------------
1900-01-01 12:15:04.124 12:15:04.1237
Sztringkonstansok konvertálása időre(n)
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 átalakítások vagy explicit átalakítások a dátum- és időtípusoktól a sztringkonstansokig az aktuális munkamenet alapértelmezett formátumában lesznek. Az alábbi táblázat a sztringkonstans idő adattípussá alakítására vonatkozó szabályokat mutatja be.
| Bemeneti sztring literálja | Áttérési szabály |
|---|---|
| ODBC DÁTUMA | Az ODBC-sztringkonstansok a datetime adattípusra vannak leképezve. Az ODBC DATETIME-konstansokból időtípusokba történő hozzárendelési műveletek implicit konverziót okoznak a datetime és a konvertálási szabályok által meghatározott típus között. |
| ODBC IDŐ | Lásd a fenti ODBC DATE szabályt. |
| ODBC DÁTUMIDŐPONTJA | Lásd a fenti ODBC DATE szabályt. |
| Csak DÁTUM | A rendszer alapértelmezett értékeket ad meg. |
| Csak IDŐ | Trivial |
| Csak IDŐZÓNA | A rendszer alapértelmezett értékeket ad meg. |
| DÁTUM + IDŐ | A bemeneti sztring TIME részét használja a rendszer. |
| DÁTUM + IDŐZÓN | Tilos. |
| IDŐ + IDŐZÓNA | A bemeneti sztring TIME részét használja a rendszer. |
| DÁTUM + IDŐ + IDŐZÓNA | A rendszer a helyi DATETIME IDŐ részét használja. |
Examples
A. Dátum- és időadatok összehasonlítása
Az alábbi példa összehasonlítja egy sztring minden dátum és idő adattípushoz való beírásának eredményeit.
SELECT CAST('2007-05-08 12:35:29. 1234567 +12:15' AS TIME(7)) AS 'time',
CAST('2007-05-08 12:35:29. 1234567 +12:15' AS DATE) AS 'date',
CAST('2007-05-08 12:35:29.123' AS SMALLDATETIME) AS 'smalldatetime',
CAST('2007-05-08 12:35:29.123' AS DATETIME) AS 'datetime',
CAST('2007-05-08 12:35:29. 1234567 +12:15' AS DATETIME2(7)) AS 'datetime2',
CAST('2007-05-08 12:35:29.1234567 +12:15' AS DATETIMEOFFSET(7)) AS 'datetimeoffset';
| Adattípus | Output |
|---|---|
| time | 12:35:29. 1234567 |
| date | 2007-05-08 |
| smalldatetime | 2007-05-08 12:35:00 |
| datetime | 2007-05-08 12:35:29.123 |
| datetime2 | 2007-05-08 12:35:29. 1234567 |
| datetimeoffset | 2007-05-08 12:35:29.1234567 +12:15 |
B. Érvényes idősztring-literálok beszúrása idő(7) oszlopba
Az alábbi táblázat különböző sztringkonstansokat sorol fel, amelyeket be lehet szúrni egy idő típusú oszlopba (7) az oszlopban tárolt értékekkel.
| Sztringkonstans formátumtípus | Sztringkonstans beszúrása | tárolt time(7) érték | Description |
|---|---|---|---|
| SQL Server | '01:01:01:123AM' | 01:01:01.1230000 | Ha a kettőspont (:) a tört másodperc pontossága előtt jön, a skálázás nem haladhatja meg a három pozíciót, vagy hiba lép fel. |
| SQL Server | '01:01:01.1234567 AM' | 01:01:01.1234567 | Am vagy PM megadásakor az idő 24 órás formátumban lesz tárolva a literális AM vagy PM nélkül |
| SQL Server | '01:01:01.1234567 PM' | 13:01:01.1234567 | Am vagy PM megadásakor az idő 24 órás formátumban lesz tárolva a literális AM vagy PM nélkül |
| SQL Server | '01:01:01.1234567PM' | 13:01:01.1234567 | Az am vagy a pm előtti tér megadása nem kötelező. |
| SQL Server | '01AM' | 01:00:00.0000000 | Ha csak az óra van megadva, az összes többi érték 0. |
| SQL Server | '01 AM' | 01:00:00.0000000 | Az am vagy a pm előtti tér megadása nem kötelező. |
| SQL Server | '01:01:01' | 01:01:01.0000000 | Ha a tört másodperc pontossága nincs megadva, az adattípus által meghatározott minden pozíció 0. |
| ISO 8601 | '01:01:01.1234567' | 01:01:01.1234567 | Az ISO 8601-nek való megfeleléshez használjon 24 órás formátumot, nem am vagy pm formátumot. |
| ISO 8601 | '01:01:01.1234567 +01:01' | 01:01:01.1234567 | Az opcionális időzóna-különbség (TZD) engedélyezett a bemenetben, de nincs tárolva. |
C. Idősztring-literál beszúrása az egyes dátum- és idődátumtípusok oszlopaiba
Az alábbi táblázatban az első oszlop egy idősztring-literált jelenít meg, amelyet a második oszlopban látható dátum- vagy időadattípus adatbázistábla-oszlopába kell beilleszteni. A harmadik oszlop az adatbázistábla oszlopában tárolt értéket jeleníti meg.
| Sztringkonstans beszúrása | Oszlop adattípusa | Oszlopban tárolt érték | Description |
|---|---|---|---|
| '12:12:12.1234567' | time(7) | 12:12:12.1234567 | Ha a tört másodperc pontossága meghaladja az oszlophoz megadott értéket, a sztring hiba nélkül csonkolja. |
| '2007-05-07' | date | NULL | Bármely időérték az INSERT utasítás sikertelenségéhez vezet. |
| '12:12:12' | smalldatetime | 1900-01-01 12:12:00 | A tört másodperc pontossági értéke miatt az INSERT utasítás meghiúsul. |
| '12:12:12.123' | datetime | 1900-01-01 12:12:12.123 | A három pozíciónál hosszabb második pontosság az INSERT utasítás sikertelenségéhez vezet. |
| '12:12:12.1234567' | datetime2(7) | 1900-01-01 12:12:12.1234567 | Ha a tört másodperc pontossága meghaladja az oszlophoz megadott értéket, a sztring hiba nélkül csonkolja. |
| '12:12:12.1234567' | datetimeoffset(7) | 1900-01-01 12:12:12.1234567 +00:00 | Ha a tört másodperc pontossága meghaladja az oszlophoz megadott értéket, a sztring hiba nélkül csonkolja. |