Megosztás a következőn keresztül:


ISDATE (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai 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';  

Lásd még:

CAST és CONVERT (Transact-SQL)