ISDATE (Transact-SQL)

Определяет, является ли входное выражение допустимой датой.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

ISDATE ( expression )

Аргументы

  • expression
    Это выражение для подтверждения даты. Аргумент expression является любым выражением за исключением выражений text, ntext и image, которые могут быть неявно преобразованы в nvarchar.

    ms187347.note(ru-ru,SQL.90).gifПримечание.
    Если тип аргумента expressionvarchar, значение преобразуется к типу 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)

Справка и поддержка

Получение помощи по SQL Server 2005