Forum Discussion
SrabaniD
May 06, 2024Copper Contributor
isdate function in SQL server
I am using isdate function to verify after extracting the first 8 chars from a sting.
isdate() returned 1 with the example below and my following code failed to calculated a Datediff().
Declare @Mystr varchar(29)
SET @Mystr='05/020/2'
Select IsDate('05/020/2')
Is there any other similar function in SQL?
Thanks in advance for any idea.
4 Replies
Sort By
- AvinashrnroxCopper Contributor/* Use these sessions settings. */
SET LANGUAGE us_english;
SET DATEFORMAT mdy;
/* Expression in mdy dateformat */
SELECT ISDATE('04/15/2008'); --Returns 1.
/* Expression in mdy dateformat */
SELECT ISDATE('04-15-2008'); --Returns 1.
/* Expression in mdy dateformat */
SELECT ISDATE('04.15.2008'); --Returns 1.
/* Expression in myd dateformat */
SELECT ISDATE('04/2008/15'); --Returns 1.
SET DATEFORMAT mdy;
SELECT ISDATE('15/04/2008'); --Returns 0.
SET DATEFORMAT mdy;
SELECT ISDATE('15/2008/04'); --Returns 0.
SET DATEFORMAT mdy;
SELECT ISDATE('2008/15/04'); --Returns 0.
SET DATEFORMAT mdy;
SELECT ISDATE('2008/04/15'); --Returns 1.
SET DATEFORMAT dmy;
SELECT ISDATE('15/04/2008'); --Returns 1.
SET DATEFORMAT dym;
SELECT ISDATE('15/2008/04'); --Returns 1.
SET DATEFORMAT ydm;
SELECT ISDATE('2008/15/04'); --Returns 1.
SET DATEFORMAT ymd;
SELECT ISDATE('2008/04/15'); --Returns 1.
SET LANGUAGE English;
SELECT ISDATE('15/04/2008'); --Returns 0.
SET LANGUAGE Hungarian;
SELECT ISDATE('15/2008/04'); --Returns 0.
SET LANGUAGE Swedish;
SELECT ISDATE('2008/15/04'); --Returns 0.
SET LANGUAGE Italian;
SELECT ISDATE('2008/04/15'); --Returns 1.
/* Return to these sessions settings. */
SET LANGUAGE us_english;
SET DATEFORMAT mdy;- AvinashrnroxCopper ContributorIf you are using US Format then kindly pass on the correct "DateFormat" for using the DATEDIFF() T-SQL functions.
- olafhelperBronze ContributorFor me with German setting your example returns correct 0.
Which language setting do your SQL login have?- SrabaniDCopper ContributorThanks for your reply. Mine is set to English.