ISDATE (Transact-SQL)

Détermine si une expression entrée est une date valide.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

ISDATE ( expression )

Arguments

  • expression
    Expression à valider en tant que date. expression représente toute expression implicitement convertible en données de type nvarchar, sauf les expressions de type text, ntext et image.

    ms187347.note(fr-fr,SQL.90).gifRemarque :
    Si expression est de type varchar, la valeur est convertie en nvarchar(4000). Si une valeur supérieure provoquant une troncation est transmise, SQL Server 2005 génère une erreur.

Notes

ISDATE est déterministe uniquement si elle est utilisée avec la fonction CONVERT, si le paramètre de style CONVERT est spécifié et si le style est différent de 0, 100, 9 ou 109.

La valeur retournée par ISDATE peut être affectée par les paramètres LANGUAGE et DATEFORMAT.

Pour voir des exemples de modèles pour lesquels ISDATE retournera la valeur 1, consultez la colonne Entrée/sortie de la section « Arguments » de la rubrique CAST et CONVERT.

ISDATE retourne 1 si la valeur entrée est une date valide. Dans le cas contraire, elle retourne 0. Le tableau suivant illustre les valeurs retournées pour une série d'exemples.

Valeur de colonne (varchar) Valeur retournée par ISDATE

NULL

0

Abc

0

100, -100, 100 a, ou 100.00

0

.01

0

-100.1234e-123

0

.231e90

0

$100.12345, - $100.12345, ou $-1000.123

0

as100 ou 1a00

0

1995-10-1, 1/20/95, 1995-10-1 12:00pm, Feb 7 1995 11:00pm, 1995-10-1 ou 1/23/95

1

13/43/3425 ou 1995-10-1a

0

$1000, $100, ou $100 a

0

Types de retour

int

Exemples

A. Utilisation de ISDATE pour vérifier une variable

L'exemple suivant vérifie si la variable locale @datestring contient des données de date valides.

DECLARE @datestring varchar(8)
SET @datestring = '12/21/98'
SELECT ISDATE(@datestring)

Voici l'ensemble des résultats.

----------- 
1           

B. Utilisation de ISDATE pour rechercher des dates dans une colonne

L'exemple suivant crée la table test_dates et insère deux valeurs. ISDATE sert à déterminer si les valeurs des colonnes sont des dates.

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

Voici l'ensemble des résultats.

Col_1                     Col_2               
-----------------         --------------------
0                         1                   

Voir aussi

Référence

SET DATEFORMAT (Transact-SQL)
SET LANGUAGE (Transact-SQL)
char et varchar (Transact-SQL)
Fonctions système (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005