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_2512060919179015050), (@pMAIN_2512060919179015051), (@pMAIN_2512060919179015052), (@pMAIN_2512060919179015053), (@pMAIN_2512060919179015054), (@pMAIN_2512060919179015055), (@pMAIN_2512060919179015056), (@pMAIN_2512060919179015057), (@pMAIN_2512060919179015058)) AS TempDates(DateString);
Parameters (If used)
| Name |
Value |
| @pMAIN_2512060919179015050 |
2023-10-27 |
| @pMAIN_2512060919179015051 |
10/27/2023 |
| @pMAIN_2512060919179015052 |
27/10/2023 |
| @pMAIN_2512060919179015053 |
October 27, 2023 |
| @pMAIN_2512060919179015054 |
20231027 |
| @pMAIN_2512060919179015055 |
2023-10-32 |
| @pMAIN_2512060919179015056 |
2023/13/27 |
| @pMAIN_2512060919179015057 |
Not a date |
| @pMAIN_2512060919179015058 |
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
|