ISDATE (Transact-SQL)
Ermittelt, ob der eingegebene Ausdruck ein gültiges Datum ist.
Transact-SQL-Syntaxkonventionen
Syntax
ISDATE ( expression )
Argumente
expression
Ein Ausdruck, der auf seine Gültigkeit als Datum überprüft wird. expression ist ein beliebiger Ausdruck (außer einem text-, ntext- oder image-Ausdruck), der implizit in nvarchar konvertiert werden kann.Hinweis: Ist expression vom Typ varchar, wird der Wert in nvarchar(4000) konvertiert. Wird ein längerer Wert übergeben, der zum Abschneiden führen würde, generiert SQL Server 2005 einen Fehler.
Rückgabetypen
int
Hinweise
ISDATE ist nur deterministisch bei Verwendung mit der CONVERT-Funktion, wenn der style-Parameter von CONVERT angegeben wird und style nicht den Wert 0, 100, 9 oder 109 aufweist.
Die Einstellungen LANGUAGE und DATEFORMAT haben möglicherweise Auswirkungen auf den Rückgabewert von ISDATE.
Beispiele für Vorlagen, für die ISDATE den Wert 1 zurückgibt, finden Sie in der Input/Output-Spalte im Abschnitt "Argumente" von CAST und CONVERT.
ISDATE gibt 1 zurück, wenn es sich bei dem angegebenen Ausdruck um ein gültiges Datum handelt. Andernfalls wird 0 zurückgegeben. Die folgende Tabelle zeigt die Rückgabewerte für einige Beispiele:
Spaltenwert (varchar) | ISDATE-Rückgabewert |
---|---|
NULL |
0 |
Abc |
0 |
100, -100, 100 a oder 100.00 |
0 |
.01 |
0 |
-100.1234e-123 |
0 |
.231e90 |
0 |
$100.12345, - $100.12345 oder $-1000.123 |
0 |
as100 oder 1a00 |
0 |
1995-10-1, 1/20/95, 1995-10-1 12:00pm, Feb 7 1995 11:00pm, 1995-10-1 oder 1/23/95 |
1 |
13/43/3425 oder 1995-10-1a |
0 |
$1000, $100 oder $100 a |
0 |
Beispiele
A. Verwenden von ISDATE zum Überprüfen einer Variablen
Das folgende Beispiel überprüft die lokale @datestring
-Variable auf einen gültigen Datumswert.
DECLARE @datestring varchar(8)
SET @datestring = '12/21/98'
SELECT ISDATE(@datestring)
Dies ist das Resultset.
-----------
1
B. Verwenden von ISDATE zum Überprüfen einer Spalte auf Datumswerte
Das folgende Beispiel erstellt die test
_dates
-Tabelle und fügt zwei Werte ein. Mit ISDATE
wird bestimmt, ob die Werte in den Spalten Datumswerte sind.
USE tempdb
CREATE TABLE test_dates (Col_1 varchar(15), Col_2 datetime)
GO
INSERT INTO test_dates VALUES ('abc', 'July 13, 1998')
GO
SELECT ISDATE(Col_1) AS Col_1, ISDATE(Col_2) AS Col_2
FROM test_dates
Dies ist das Resultset.
Col_1 Col_2
----------------- --------------------
0 1
Siehe auch
Verweis
SET DATEFORMAT (Transact-SQL)
SET LANGUAGE (Transact-SQL)
char und varchar (Transact-SQL)
Systemfunktionen (Transact-SQL)