Tsql “转换字符串”;2018年6月1日星期五“;迄今为止

Tsql “转换字符串”;2018年6月1日星期五“;迄今为止,tsql,Tsql,我在数据库中的导入文件中有一列,格式为2018年6月1日星期五,并试图将varchar格式转换为有效的日期转换 我试过铸造和转化,但没有成功 SELECT CAST([Course date] as DATETIME) FROM [dbo].[Test] SELECT CONVERT(datetime, [Course date], 103) FROM [dbo].[Test] 我希望转换为103型UKdd/mm/yyyyTRY\u CONVERT似乎能够处理您的日期字符串。请注意,日期的名

我在数据库中的导入文件中有一列,格式为2018年6月1日星期五,并试图将varchar格式转换为有效的日期转换

我试过铸造和转化,但没有成功

SELECT CAST([Course date] as DATETIME)
FROM [dbo].[Test]

SELECT CONVERT(datetime, [Course date], 103)
FROM [dbo].[Test]

我希望转换为103型UK
dd/mm/yyyy
TRY\u CONVERT
似乎能够处理您的日期字符串。请注意,日期的名称是多余的,不需要确定确切的日期。因此,我们可以使用基本字符串函数删除它

WITH yourTable AS (
    SELECT 'Friday June 1, 2018' AS datecol
)

SELECT
    datecol AS input,
    TRY_CONVERT(datetime, STUFF(datecol, 1, CHARINDEX(' ', datecol), '')) AS output
FROM yourTable;


谢谢您成功转换。请注意,此解决方案取决于当前会话的语言设置。尝试添加
SET语言意大利语并查看
try\u convert
如何返回null
我希望转换为103 UK类型
-但是-转换将返回类型为
DateTime
的值,稍后您可以用任何格式表示为字符串。是的,谢谢,Tim帮助转换为日期字段,然后能够按日期查询。之后在SQL查询中实现了103类型,返回2018年6月1日的CONVERT(varchar(10),[课程日期],103)作为“日期”,您还应该考虑我对Tim答案的评论。确保语言设置为英语,否则try\u convert可能返回null。