ISDATE (Transact-SQL)
Определяет, является ли входное выражение допустимой датой.
Синтаксические обозначения в Transact-SQL
Синтаксис
ISDATE ( expression )
Аргументы
expression
Это выражение для подтверждения даты. Аргумент expression является любым выражением за исключением выражений text, ntext и image, которые могут быть неявно преобразованы в nvarchar.Примечание.
Если тип аргумента expression — varchar, значение преобразуется к типу nvarchar(4000). Если переданное значение больше, чем результат усечения, SQL Server 2005 формирует ошибку.
Типы возвращаемых данных
int
Замечания
Функция ISDATE детерминирована, только если используется с функцией CONVERT, при этом аргумент стиля CONVERT задан, но не равен 0, 100, 9 или 109.
Настройки LANGUAGE и DATEFORMAT могут влиять на значение, возвращаемое функцией ISDATE.
Примеры шаблонов, для которых функция ISDATE возвращает значение 1, см. в описании столбца типа Ввод-Вывод раздела «Аргументы» функций CAST и CONVERT.
ISDATE возвращает 1, если входное выражение является действительной датой; иначе возвращается 0. Следующая таблица содержит возвращенные значения для выделенных примеров.
Значение столбца (varchar) | Возвращенное значение ISDATE |
---|---|
NULL |
0 |
Abc |
0 |
100, -100, 100 a или 100,00 |
0 |
.01 |
0 |
-100,1234e-123 |
0 |
.231e90 |
0 |
$100,12345, -$100,12345 или $-1000,123 |
0 |
as100 или 1a00 |
0 |
1995-10-1, 1/20/95, 1995-10-1 12:00, 7 февраля 1995 11:00, 1995-10-1 или 1/23/95 |
1 |
13/43/3425 или 1995-10-1a |
0 |
$1000, $100 или $100 a |
0 |
Примеры
A. Использование ISDATE для проверки переменной
Следующий пример проверяет локальную переменную @datestring
на действительность даты.
DECLARE @datestring varchar(8)
SET @datestring = '12/21/98'
SELECT ISDATE(@datestring)
Ниже приводится результирующий набор.
-----------
1
Б. Использование ISDATE для проверки столбца на даты
Следующий пример создает таблицу test
_dates
и вставляет два значения. Функция ISDATE
используется для определения, являются ли значения в столбцах датами.
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
Ниже приводится результирующий набор.
Col_1 Col_2
----------------- --------------------
0 1
См. также
Справочник
SET DATEFORMAT (Transact-SQL)
SET LANGUAGE (Transact-SQL)
Типы char и varchar (Transact-SQL)
Системные функции (Transact-SQL)