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
|