将 AS 列的格式从文本更改为日期时间

Changing the format of an AS column from text to datetime

我正在使用此代码从文本字段中提取日期和时间。

    SELECT
    LEFT(SUBSTRING(eventcomments,
    CHARINDEX('Off-Site:', eventcomments) + 9, 17),
    CHARINDEX('Off-Site:', eventcomments)) AS Departed

它创建一个 Departed 列 dd/mm/yyyy hh:mm

我想将其从文本格式转换为日期时间格式,因此我添加了以下代码。

    SELECT
    CONVERT(datetime,LEFT(SUBSTRING(eventcomments,
    CHARINDEX('Off-Site:', eventcomments) + 9, 17),
    CHARINDEX('Off-Site:', eventcomments))) AS Departed

但我收到以下错误消息,

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

我的问题是,

如何将已离去列的格式从文本格式更改为日期时间格式。

只需使用 CAST 函数:

SELECT CAST(LEFT(SUBSTRING(eventcomments,
            CHARINDEX('Off-Site:', eventcomments) + 9, 17),
            CHARINDEX('Off-Site:', eventcomments)) 
          AS DATETIME) AS Departed

喜欢SELECT CAST('05/10/1983 19:00' as datetime)