SQL Server ISDATE() Function
In SQL Server, the ISDATE()
function returns 1 if the input expression is a valid datetime value, else it returns 0.
ISDATE(input_expression)
Parameters
input_expression: It is a string or an expression that can be converted to a string. It must be less than 4000 characters.
Note: The datetime range is 1753-01- 01 to 9999-12-31 and date range is 0001-01-01 to 9999-12-31.
Return Value
Returns integer value 0 or 1. 0 indicates the input expression is not a date and return value. 1 indicates that the input expression is a valid date or datetime value.
If input_expression is a datetime2 value, then ISDATE()
returns 0.
Check for Valid Date String
In the following example, the ISDATE()
validates whether the specified date string is a valid date or not. It returns 1 if valid date otherwise returns 0.
SELECT ISDATE ('2022-10-20') AS IsValidDate
Check for Valid DateTime String
In the following example, the ISDATE()
function validates whether the specified string is a valid datetime value or not.
SELECT ISDATE ('2022-10-20 10:10:20') AS IsValidDate
In the following example, a string, an integer value, a Boolean and Boolean values are passed to the ISDATE()
function which returns a 0 (False).
SELECT ISDATE ('Hello') AS IsStrDate, ISDATE(1234) AS IsIntdate, ISDATE('FALSE') AS IsBolDate, ISDATE(0) IsBolintDate
Check for Valid DateTime Format
In the following example, an invalid date format is passed to the ISDATE()
function.
SELECT ISDATE ('2022-20-10') AS IsValidDate
The above query returns 0 because of invalid date format as per the server setting.
The return value of ISDATE()
depends on the server settings set by SET DATEFORMAT, SET LANGUAGE, and the default language of the server.
To check the current setting of the SQL Server, use the following statement
DBCC useroptions
As you can see, the valid date format for the server is mdy
and so the ISDATE()
function returned 0.
Now, change the date format to dmy
, as shown below.
SET DATEFORMAT dmy;
Now, execute the following SQL again. This time the ISDATE()
function returns 1.
SELECT ISDATE ('2022-20-10') AS IsValidDate
Note: You can change the date format to dmy, ydm, ymd from standard mdy format.