ISDATE (Transact-SQL)
Determina si una expresión de entrada es una fecha válida.
Convenciones de sintaxis de Transact-SQL
Sintaxis
ISDATE ( expression )
Argumentos
expression
Es una expresión que se valida como una fecha. expression es una expresión de cualquier tipo, excepto text, ntext e image, que se puede convertir implícitamente a nvarchar.[!NOTA] Si expression es de tipo varchar, el valor se convierte en nvarchar(4000). Si se pasa un valor más alto que producirá un truncamiento, SQL Server 2005 generará un error.
Tipos de valor devueltos
int
Notas
ISDATE sólo es determinista si se utiliza con la función CONVERT, se especifica el parámetro de estilo CONVERT y el estilo no es igual a 0, 100, 9 ni 109.
Los valores de LANGUAGE y DATEFORMAT pueden afectar al valor devuelto de ISDATE.
Para obtener ejemplos de plantillas en las que ISDATE devolverá 1, vea la columna Entrada/salida de la sección "Argumentos" de CAST y CONVERT.
ISDATE devuelve 1 si la expresión de entrada es una fecha válida; en caso contrario, devuelve 0. La tabla siguiente muestra los valores devueltos de una selección de ejemplos.
Valor de la columna (varchar) | Valor devuelto de 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 |
Ejemplos
A. Utilizar ISDATE para comprobar una variable
En este ejemplo se comprueba si la variable local @datestring
contiene datos de una fecha válida.
DECLARE @datestring varchar(8)
SET @datestring = '12/21/98'
SELECT ISDATE(@datestring)
Éste es el conjunto de resultados.
-----------
1
B. Utilizar ISDATE para comprobar las fechas de una columna
El ejemplo siguiente crea la tabla test
_dates
e inserta dos valores. ISDATE
se utiliza para determinar si los valores de las columnas son fechas.
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
Éste es el conjunto de resultados.
Col_1 Col_2
----------------- --------------------
0 1
Vea también
Referencia
SET DATEFORMAT (Transact-SQL)
SET LANGUAGE (Transact-SQL)
char y varchar (Transact-SQL)
Funciones del sistema (Transact-SQL)