В этом руководстве вы узнаете, как использовать функцию SQL Server ISDATE() для проверки того, является ли значение допустимым типом DATE, TIME или DATETIME.
Введение в функцию SQL Server ISDATE()
Функция ISDATE() принимает аргумент и возвращает 1, если этот аргумент является допустимым значением DATE, TIME или DATETIME; в противном случае она возвращает 0.
ISDATE(expression)
Выражение представляет собой строку символов или выражение, которое может быть преобразовано в строку символов. Его длина должна быть меньше 4000 символов.
Выражение может также быть значением DATE или TIME, но не может быть значением типа DATETIME или SMALLDATETIME.
Если выражение представляет собой значение DATETIME2, функция возвращает 0.
Обратите внимание, что диапазон данных DATETIME составляет от 1753-01-01 до 9999-12-31, а диапазон данных DATE составляет от 0001-01-01 до 9999-12-31.
Примеры функции SQL Server ISDATE()
Давайте рассмотрим несколько примеров использования функции ISDATE().
Использование функции ISDATE() для проверки допустимого выражения даты
В этом примере функция ISDATE() используется для проверки того, является ли строка допустимыми данными DATE:
SELECT ISDATE('2020-06-15') is_date
Вот что получилось:
is_date ----------- 1 (1 row affected)
Посмотрите этот пример:
SELECT ISDATE('2020-15-06') is_date
Вывод:
is_date ----------- 0 (1 row affected)
Эта функция ISDATE() зависит от SET DATEFORMAT, SET LANGUAGE и языка по умолчанию SQL Server.
Чтобы просмотреть текущие настройки, выполните следующую команду:
DBCC useroptions
Текущая настройка языка — us_english. Если вы измените язык на британский:
SET LANGUAGE british;
Тогда ISDATE() вернет другой результат для следующего примера:
SELECT ISDATE('2020-15-06') is_date
Строка «2020-15-06» теперь считается допустимой датой:
is_date ----------- 1 (1 row affected)
Использование функции ISDATE() для проверки допустимого выражения даты и времени
В следующем примере функция ISDATE() используется для проверки того, является ли выражение допустимым значением DATETIME:
SELECT ISDATE('2020-12-05 11:20:30') is_date
Вот что получилось:
is_date ----------- 1 (1 row affected)
В этом руководстве вы узнали, как использовать функцию SQL Server ISDATE() для проверки того, является ли выражение допустимым значением DATE, TIME или DATETIME.