- 03/14/2017
- 3 perc olvasás
-
- c
- j
- r
- M
- i
-
+6
.
Az alábbiakra vonatkozik: SQL Server (minden támogatott verzió) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse
1-et ad vissza, ha a kifejezés érvényes dátum, idő vagy datetime érték; ellenkező esetben 0.
ISDATE 0-t ad vissza, ha a kifejezés egy datetime2 érték.
A Transact-SQL összes dátum és idő adattípusának és függvényének áttekintését lásd: Dátum és idő adattípusok és függvények (Transact-SQL). Vegye figyelembe, hogy a dátumidő adatok tartománya 1753-01-01 és 9999-12-31 között, míg a dátum adatok tartománya 0001-01-01 és 9999-12-31 között van.
Transact-SQL szintaxis konvenciók
Szintaxis
ISDATE ( expression )
Megjegyzés
Az SQL Server 2014 és korábbi verziók Transact-SQL szintaxisának megtekintéséhez lásd a Korábbi verziók dokumentációját.
Arguments
expression
Karakterlánc vagy karakterlánccá alakítható kifejezés. A kifejezésnek 4000 karakternél kevesebbnek kell lennie. A dátum és idő adattípusok, a datetime és smalldatetime kivételével, nem engedélyezettek az ISDATE argumentumaként.
Return Type
int
Remarks
Az ISDATE csak akkor determinisztikus, ha a CONVERT függvénnyel együtt használja, ha a CONVERT style paraméter meg van adva, és a style nem egyenlő 0, 100, 9 vagy 109 értékkel.
Az ISDATE visszatérési értéke a SET DATEFORMAT, a SET LANGUAGE és a Configure the default language Server Configuration Option beállításaitól függ.
ISDATE kifejezésformátumok
Az érvényes formátumok példáit, amelyek esetén az ISDATE 1-et ad vissza, lásd a datetime és smalldatetime témakörök “Supported String Literal Formats for datetime” című szakaszában. További példákért lásd még a CAST és CONVERT “Argumentumok” szakaszának Input/Output oszlopát.
A következő táblázat összefoglalja azokat a bemeneti kifejezésformátumokat, amelyek nem érvényesek, és amelyek 0-t vagy hibát adnak vissza.
ISDATE kifejezés | ISDATE visszatérési érték |
---|---|
NULL | 0 |
Az Adattípusok pontban felsorolt adattípusok értékei a karakterláncok, Unicode karakterláncok vagy dátum és idő kivételével bármely adattípus kategóriában. | 0 |
Szöveg, ntext vagy kép adattípusok értékei. | 0 |
Minden olyan érték, amelynek másodperc pontosságú skálája nagyobb, mint 3, (.0000-tól .0000000-ig…n). Az ISDATE 0-t ad vissza, ha a kifejezés egy datetime2 érték, de 1-et ad vissza, ha a kifejezés egy érvényes datetime érték. | 0 |
Minden olyan érték, amely keveri az érvényes dátumot egy érvénytelen értékkel, például 1995-10-1a. | 0 |
Példák
A. Az ISDATE használata az érvényes dátumkifejezés tesztelésére
A következő példa azt mutatja be, hogyan használhatja a ISDATE
-t annak tesztelésére, hogy egy karakterlánc érvényes dátumkifejezés-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ásának bemutatása a visszatérési értékekre
A következő utasítások a SET DATEFORMAT
és SET LANGUAGE
beállítások eredményeként visszatérő értékeket mutatják.
/* 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 és Parallel Data Warehouse
C. Az ISDATE használata az érvényes dátumidő-kifejezés tesztelésére
A következő példa azt mutatja be, hogyan használhatja a ISDATE
-t annak tesztelésére, hogy egy karakterlánc érvényes dátumidő-e.
IF ISDATE('2009-05-12 10:19:41.177') = 1 SELECT 'VALID'; ELSE SELECT 'INVALID';
See Also
CAST és CONVERT (Transact-SQL)
.