Condividi tramite


ISDATE (Transact-SQL)

Determina se un'espressione di input è una data valida.

Icona di collegamento a un argomentoConvenzioni 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)

Guida in linea e informazioni

Assistenza su SQL Server 2005