Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Endpoint di analisi SQL in Microsoft Fabric
Magazzino in Microsoft Fabric
Database SQL in Microsoft Fabric
Restituisce 1 se expression è un valore datetime valido; in caso contrario, 0.
ISDATE restituisce 0 se expression è un valore datetime2.
Per una panoramica di tutte le funzioni e i tipi di dati di data e ora Transact-SQL, vedere Funzioni e tipi di dati di data e ora (Transact-SQL). Si noti che l'intervallo di dati datetime è compreso tra 1753-01-01 e 9999-12-31, mentre l'intervallo di dati relativi alla data è compreso tra 0001-01-01 e 9999-12-31.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
ISDATE ( expression )
Argomenti
expression
Stringa di caratteri o espressione che può essere convertita in una stringa di caratteri. L'espressione deve essere di lunghezza inferiore a 4.000 caratteri. I tipi di dati relativi a data e ora, ad eccezione di datetime e smalldatetime, non sono consentiti come argomento di ISDATE.
Tipo restituito
int
Osservazioni:
La funzione ISDATE è deterministica solo quando viene usata con la funzione CONVERT, se il parametro style della funzione CONVERT è specificato e se lo stile è diverso da 0, 100, 9 o 109.
Il valore di ritorno di ISDATE dipende dalle impostazioni impostate da SET DATEFORMAT, SET LANGUAGE e Configura l'opzione di configurazione del server del linguaggio predefinito.
Formati di espressione ISDATE
Per alcuni esempi di formati validi per i quali ISDATE restituisce 1, vedere la sezione relativa ai formati di valore letterale stringa supportati per datetime negli argomenti datetime e smalldatetime. Per esempi aggiuntivi, vedere anche la colonna Input/output della sezione "Argomenti" di CAST e CONVERT.
Nella tabella seguente sono riepilogati i formati di espressione non validi e che restituiscono 0 o un errore.
| Espressione ISDATE | Valore restituito ISDATE |
|---|---|
| NULL | 0 |
| Valori dei tipi di dati elencati in Tipi di dati in qualsiasi categoria diversa da stringhe di caratteri, stringhe di caratteri Unicode o data e ora. | 0 |
| Valori dei tipi di dati text, ntext o image. | 0 |
| Qualsiasi valore con una scala di precisione in secondi frazionari maggiore di 3 (da 0,0000 a 0,0000000... n) ISDATE restituisce 0 se expression è un valore datetime2 ma restituisce 1 se expression è un valore datetime valido. | 0 |
| Qualsiasi valore che combina una data valida con un valore non valido, ad esempio 1995-10-1a. | 0 |
Esempi
R. Utilizzo di ISDATE per il test di un'espressione datetime valida
Nell'esempio seguente viene illustrato l'uso di ISDATE per testare se una stringa di caratteri è un valore datetime valido.
IF ISDATE('2009-05-12 10:19:41.177') = 1
PRINT 'VALID'
ELSE
PRINT 'INVALID';
B. Mostra gli effetti delle SETSET DATEFORMAT impostazioni e SETSET LANGUAGE sui valori di ritorno
Nelle istruzioni seguenti sono mostrati i valori restituiti come risultato delle impostazioni di SET DATEFORMAT e SET LANGUAGE.
/* 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;
Esempi: Azure Synapse Analytics
C. Utilizzo di ISDATE per il test di un'espressione datetime valida
Nell'esempio seguente viene illustrato l'uso di ISDATE per testare se una stringa di caratteri è un valore datetime valido.
IF ISDATE('2009-05-12 10:19:41.177') = 1
SELECT 'VALID';
ELSE
SELECT 'INVALID';