ISDATE (Transact-SQL)
Détermine si une expression entrée est une date valide.
Conventions 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.Remarque : 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)