ISDATE (Transact-SQL)

  • 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)

.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.