来自varchar的SQL转换日期格式

时间:2013-06-26 19:21:32

标签: sql sql-server-2012

我在表格中有一个varchar列,其中包含如下所示的数据:

2010-06-24-00.00.00.000000

我需要将其转换为Date,如下所示:

6/24/2010

使用T-SQL。我怎样才能做到这一点?我正在使用SQL Server 2012。

这是什么日期格式? 2010-06-24-00.00.00.000000

3 个答案:

答案 0 :(得分:2)

您可以使用FORMAT功能:

FORMAT(datefield,'MM/dd/yyyy')

但是,因为它是一个VARCHAR,要使用FORMAT函数,你必须首先将日期部分作为日期CAST:

FORMAT(CAST(LEFT(stringdatefield,10) AS DATE),'MM/dd/yyyy')

答案 1 :(得分:1)

select convert(date, left('2010-06-24-00.00.00.000000', 10))

答案 2 :(得分:0)

您可以向convert函数添加可选参数。如果您希望结果为字符串,只需执行以下操作:

CONVERT(varchar(8),datefield,1)

如果您希望结果为DATE类型,请将其强制转换为:

CAST(CONVERT(varchar(8),datefield,1) as DATE)