Other ISDATE SQL function


1. Usage of ISDATE to show the date is valid

SQL Server Query 1

            
 SELECT  
DateString,
ISDATE(DateString) AS IsValidDate
FROM (
VALUES
('2023-10-27'), -- Valid date
('10/27/2023'), -- Valid date (US format)
('27/10/2023'), -- Valid date (UK format)
('October 27, 2023'), -- Valid date
('20231027'), -- Valid date (ISO 8601)
('2023-10-32'), -- Invalid date (invalid day)
('2023/13/27'), -- Invalid date (invalid month)
('Not a date'), -- Invalid date
(NULL) -- NULL value
) AS TempDates (DateString);

Create SQL query with SqlQueryBuilder 1

            
 var (sql1, parameters1) = new SqlQueryBuilder()  
.Select()
.Column("DateString", "DateString")
.Column(new ISDATE(new Column("DateString")), "IsValidDate")
.From(new VALUES(new List<List<object>>()
{
new List<object>(){ "2023-10-27" },
new List<object>(){ "10/27/2023" },
new List<object>(){ "27/10/2023" },
new List<object>(){ "October 27, 2023" },
new List<object>(){ "20231027" },
new List<object>(){ "2023-10-32" },
new List<object>(){ "2023/13/27" },
new List<object>(){ "Not a date" },
new List<object>(){ "NULL" }
}, "TempDates", "DateString"))
.Build();

Query build by SqlQueryBuilder 1

            
SELECT DateString AS DateString,
       ISDATE(DateString) AS IsValidDate
FROM (VALUES (@pMAIN_2507192049581377240), (@pMAIN_2507192049581377241), (@pMAIN_2507192049581377242), (@pMAIN_2507192049581377243), (@pMAIN_2507192049581377244), (@pMAIN_2507192049581377245), (@pMAIN_2507192049581377246), (@pMAIN_2507192049581377247), (@pMAIN_2507192049581377248)) AS TempDates(DateString);


            
        

Parameters (If used)

Name Value
@pMAIN_2507192049581377240 2023-10-27
@pMAIN_2507192049581377241 10/27/2023
@pMAIN_2507192049581377242 27/10/2023
@pMAIN_2507192049581377243 October 27, 2023
@pMAIN_2507192049581377244 20231027
@pMAIN_2507192049581377245 2023-10-32
@pMAIN_2507192049581377246 2023/13/27
@pMAIN_2507192049581377247 Not a date
@pMAIN_2507192049581377248 NULL

Query Results 1:

  DateString IsValidDate
1 2023-10-27 1
2 10/27/2023 1
3 27/10/2023 0
4 October 27, 2023 1
5 20231027 1
6 2023-10-32 0
7 2023/13/27 0
8 Not a date 0
9 NULL 0