LEFT(..., 23) , , mdy ( SQL-Server 2008). DBCC USEROPTIONS.
, (dmy), LEFT(..., 23) ( > 12). :
CREATE TABLE dt_vs_dt2 (
dt DATETIME,
dt2 DATETIME2
);
DECLARE @date_value AS DATETIME = DATEADD(DAY, 18 - DAY(GETDATE()), GETDATE());
INSERT INTO dt_vs_dt2 VALUES (@date_value, @date_value);
SELECT dt, dt2 FROM dt_vs_dt2;
SELECT ISDATE(dt), ISDATE(LEFT(dt2, 23))
FROM dt_vs_dt2;
?
CAST(column_name AS DATETIME) LEFT(..., 23), :
SELECT dt, CAST(dt2 AS DATETIME) AS dt2
FROM dt_vs_dt2;
SELECT ISDATE(dt) AS dt, ISDATE(CAST(dt2 AS DATETIME)) AS dt2
FROM dt_vs_dt2;
dbfiddle.uk ( dmy)/ dbfiddle.uk ( mdy)
SQL Server 2012 TRY_PARSE/TRY_CONVERT, @Aaron Bertrand answer. CAST(... AS DATETIME), , .