ISDATE (Transact-SQL)
Determina se un'espressione di input è una data valida.
Convenzioni della sintassi Transact-SQL
Sintassi
ISDATE ( expression )
Argomenti
expression
Espressione da convalidare come data. expression è qualsiasi espressione, tranne le espressioni text, ntext e image, che possono essere convertite in modo implicito in nvarchar.[!NOTA] Se expression è di tipo varchar, il valore viene convertito in nvarchar(4000). Se viene passato un valore di dimensioni maggiori che determinerebbe il troncamento, SQL Server 2005 genera un errore.
Tipi restituiti
int
Osservazioni
La funzione ISDATE è deterministica solo se utilizzata con la funzione CONVERT, se viene specificato il parametro di stile e se lo stile non equivale a 0, 100, 9 o 109.
Il valore restituito di ISDATE può essere interessato dalle impostazioni LANGUAGE e DATEFORMAT.
Per esempi di modelli per cui ISDATE restituisce 1, vedere la colonna Input/Output della sezione "Argomenti" di CAST e CONVERT.
ISDATE restituisce 1 se l'espressione di input è una data valida. In caso contrario restituisce 0. Nella tabella seguente vengono descritti i valori restituiti per una selezione di esempi.
Valore della colonna (varchar) | Valore restituito ISDATE |
---|---|
NULL |
0 |
Abc |
0 |
100, -100, 100 a o 100.00 |
0 |
.01 |
0 |
-100.1234e-123 |
0 |
.231e90 |
0 |
$100.12345, - $100.12345 o $-1000.123 |
0 |
as100 o 1a00 |
0 |
1995-10-1, 1/20/95, 1995-10-1 12:00pm, Feb 7 1995 11:00pm, 1995-10-1 o 1/23/95 |
1 |
13/43/3425 o 1995-10-1a |
0 |
$1000, $100 o $100 a |
0 |
Esempi
A. Utilizzo di ISDATE per controllare una variabile
Nell'esempio seguente viene verificato se alla variabile locale @datestring
sono associati dati validi relativi alla data.
DECLARE @datestring varchar(8)
SET @datestring = '12/21/98'
SELECT ISDATE(@datestring)
Set di risultati:
-----------
1
B. Utilizzo della funzione ISDATE per controllare le date in una colonna
Nell'esempio seguente viene creata la tabella test
_dates
e vengono inseriti due valori. La funzione ISDATE
viene utilizzata per determinare se i valori della colonna sono date.
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
Set di risultati:
Col_1 Col_2
----------------- --------------------
0 1
Vedere anche
Riferimento
SET DATEFORMAT (Transact-SQL)
SET LANGUAGE (Transact-SQL)
char and varchar (Transact-SQL)
Funzioni di sistema (Transact-SQL)