ISDATE (Transact-SQL)
Retourne 1 si l'expression est une valeur date, time ou datetime valide ; sinon, 0.
Pour obtenir une vue d'ensemble de tous les types de données et fonctions de date et d'heure Transact-SQL, consultez Fonctions de date et d'heure (Transact-SQL). Pour obtenir des informations et des exemples communs aux types de données et fonctions de date et d'heure, consultez Utilisation des données de date et d'heure.
Syntaxe
ISDATE ( expression )
Arguments
- expression
Chaîne de caractères ou expression qui peut être convertie en une chaîne de caractères. L'expression doit comporter moins de 4 000 caractères.
Type de retour
int
Notes
ISDATE est déterministe uniquement si elle est utilisée avec la fonction CONVERT, lorsque le paramètre de style CONVERT est spécifié et que le style est différent de 0, 100, 9 ou 109.
La valeur de retour d'ISDATE dépend des paramètres définis par SET DATEFORMAT, SET LANGUAGE et l'option de langue par défaut. Pour obtenir des exemples, consultez l'exemple C.
Formats d'expression ISDATE
Pour obtenir des exemples de formats valides pour lesquels ISDATE retourne 1, consultez la section « Formats de littéraux de chaîne pris en charge pour datetime » dans les rubriques datetime et smalldatetime. Pour obtenir des exemples supplémentaires, consultez également la colonne Entrée/sortie de la section « Arguments » de CAST et CONVERT.
Le tableau suivant résume les formats d'expression d'entrée qui ne sont pas valides et qui retournent 0 ou une erreur.
Expression ISDATE |
Valeur retournée par ISDATE |
---|---|
NULL |
0 |
Valeurs des types de données répertoriés dans Types de données dans toute catégorie de type de données autre que les chaînes de caractères, chaînes de caractères Unicode, ou date et heure. |
0 |
Valeurs des types de données text, ntext ou image. |
0 |
Toute valeur qui a une échelle de précision en secondes supérieure à 3 (,0000 à ,0000000... n) |
0 |
Toute valeur qui associe une date valide à une valeur non valide, par exemple 1995-10-1a. |
0 |
Exemples
A. Utilisation d'ISDATE pour tester une expression datetime valide.
L'exemple suivant montre comment utiliser ISDATE pour tester si une chaîne de caractères est une valeur datetime valide.
IF ISDATE('2009-05-12 10:19:41.177') = 1
PRINT 'VALID'
ELSE
PRINT 'INVALID'
B. Illustration des effets des paramètres SET DATEFORMAT et SET LANGUAGE sur les valeurs de retour
Les instructions suivantes affichent les valeurs qui sont retournées suite aux paramètres de SET DATEFORMAT et 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;