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.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitikai Platform System (PDW)
SQL adatbázis a Microsoft Fabric-ben
1-et ad vissza, ha az adott kifejezés érvényes dátum-idő érték; egyébként 0.
Az ISDATE 0-t ad vissza, ha a kifejezésdatetime2 érték.
Az összes Transact-SQL dátum- és időadattípus és -függvény áttekintése: Dátum- és időadattípusok és függvények (Transact-SQL). Fontos megjegyezni, hogy a dátumdátum adatainak tartománya 1753-01-01 és 9999-12-31 között, míg a dátumadatok tartománya 0001-01-01 és 9999-12-31. között van.
Transact-SQL szintaxis konvenciók
Szemantika
ISDATE ( expression )
Arguments
kifejezés
Ez egy karakterlánc vagy kifejezés , amely átalakítható karakterláncrá. A kifejezésnek kevesebbnek kell lennie, mint 4 000 karakter. Dátum és idő adattípusok, kivéve a datetime és a smalldatetime kifejezéseket, nem engedélyezettek az ISDATE argumentumként.
Visszatérési típus
int
Megjegyzések
Az ISDATE csak akkor determinisztikus akkor, ha a CONVERT funkcióval használod, ha a CONVERT stílusparaméter meg van szabva, és a stílus nem egyenlő 0, 100, 9 vagy 109.
Az ISDATE visszaküldési értéke a SET DATEFORMAT, SET LANGUAGE és a Configure the default language Server Configuration Option beállításaitól függ.
ISDATE kifejezés Formátumok
Érvényes formátumok példáiért, amelyekhez az ISDATE 1-et ad vissza, lásd a datetime és a kisdátum időpont témák "Támogatott string literális formátumok dátumidőhöz" szekcióban. További példákért lásd a CAST és CONVERT "Argumentek" szekciójának Bemenet/Kimenet oszlopát is.
Az alábbi táblázat összefoglalja azokat a bemeneti kifejezésformátumokat, amelyek nem érvényesek, és 0-t vagy hibát adnak vissza.
| ISDATE kifejezés | ISDATE visszaküldési érték |
|---|---|
| NULLA | 0 |
| Az adattípusok értékei az Adattípusok között felsorolt bármely adattípus-kategóriában, kivéve a karakterláncokat, Unicode karaktersorokat, vagy dátumot és időt. | 0 |
| Szöveg, ntext vagy kép adattípusok értékei. | 0 |
| Bármely érték, amelynek másodpercpontossága nagyobb, mint 3 (.0000-től .0000000...n-ig). Az ISDATE 0-t ad vissza, ha az kifejezésdatetime2 érték, de 1-et, ha érvényesdatetime érték. | 0 |
| Bármilyen érték, amely egy érvényes dátumot kever egy érvénytelen értékkel, például 1995-10-1a. | 0 |
Példák
A. ISDATE használata érvényes dátum-idő kifejezés tesztelésére
A következő példa megmutatja, hogyan ISDATE tesztelheted, hogy egy karakterlánc érvényes dátum-idő-e.
IF ISDATE('2009-05-12 10:19:41.177') = 1
PRINT 'VALID'
ELSE
PRINT 'INVALID';
B. A SET DATEFORMAT és a SET LANGUAGE beállítások hatásainak bemutatása a visszaadó értékekre
Az alábbi állítások bemutatják azokat az értékeket, amelyek a és SET LANGUAGEbeállításai SET DATEFORMAT eredményeként térnek vissza.
/* Use these sessions settings. */
SET LANGUAGE us_english;
SET DATEFORMAT mdy;
/* Expression in mdy dateformat */
SELECT ISDATE('04/15/2008'); --Returns 1.
/* Expression in mdy dateformat */
SELECT ISDATE('04-15-2008'); --Returns 1.
/* Expression in mdy dateformat */
SELECT ISDATE('04.15.2008'); --Returns 1.
/* Expression in myd dateformat */
SELECT ISDATE('04/2008/15'); --Returns 1.
SET DATEFORMAT mdy;
SELECT ISDATE('15/04/2008'); --Returns 0.
SET DATEFORMAT mdy;
SELECT ISDATE('15/2008/04'); --Returns 0.
SET DATEFORMAT mdy;
SELECT ISDATE('2008/15/04'); --Returns 0.
SET DATEFORMAT mdy;
SELECT ISDATE('2008/04/15'); --Returns 1.
SET DATEFORMAT dmy;
SELECT ISDATE('15/04/2008'); --Returns 1.
SET DATEFORMAT dym;
SELECT ISDATE('15/2008/04'); --Returns 1.
SET DATEFORMAT ydm;
SELECT ISDATE('2008/15/04'); --Returns 1.
SET DATEFORMAT ymd;
SELECT ISDATE('2008/04/15'); --Returns 1.
SET LANGUAGE English;
SELECT ISDATE('15/04/2008'); --Returns 0.
SET LANGUAGE Hungarian;
SELECT ISDATE('15/2008/04'); --Returns 0.
SET LANGUAGE Swedish;
SELECT ISDATE('2008/15/04'); --Returns 0.
SET LANGUAGE Italian;
SELECT ISDATE('2008/04/15'); --Returns 1.
/* Return to these sessions settings. */
SET LANGUAGE us_english;
SET DATEFORMAT mdy;
Példák: Azure Synapse Analytics and Analytics Platform System (PDW)
C. ISDATE használata érvényes dátum-idő kifejezés tesztelésére
A következő példa megmutatja, hogyan ISDATE tesztelheted, hogy egy karakterlánc érvényes dátum-idő-e.
IF ISDATE('2009-05-12 10:19:41.177') = 1
SELECT 'VALID';
ELSE
SELECT 'INVALID';