SQL VarChar到日期

Sha*_*ful 3 sql varchar date

您好我正在尝试将VarChar日期字段(例如20100320)转换为真实日期字段

'dd/mm/yyyy' (e.g. 20/03/2010).

我尝试了两种方法:a)

 (SELECT    MIN(CAST(A.DateOfAction AS Date)) AS Expr1
           FROM      ResAdm.Action A
           WHERE    (A.PersonID = P.PersonID)) 

     AS 'Period From',
Run Code Online (Sandbox Code Playgroud)

b)

(SELECT    MIN(CONVERT(DATE, A.DateOfAction, 103)) AS Expr1
           FROM      ResAdm.Action A
           WHERE    (A.PersonID = P.PersonID)) 

     AS 'Period From',
Run Code Online (Sandbox Code Playgroud)

两者都产生了结果

yyyy-mm-dd(例如2010-03-20)

但我希望结果像

dd/mm/yyyy(例如20/03/2010)

任何帮助将不胜感激.谢谢.

Jon*_*Jon 5

试试这个:

select convert(varchar(8), convert(datetime, min(a.DateOfAction), 112), 103)
Run Code Online (Sandbox Code Playgroud)

您的问题是,一旦您有一个日期格式,SQL Server将以您发现的默认日期格式将其转储出来yyyy-mm-dd.您需要从转换datevarchar得到你想要的格式.但要从日期转换,您需要先转换为日期!112是格式yyyymmdd,103是格式dd/mm/yyyy,所以这就是你需要这些格式的原因.(日期格式的书籍在线参考)