喜 我正在尝试将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',
b)
(SELECT MIN(CONVERT(DATE, A.DateOfAction, 103)) AS Expr1
FROM ResAdm.Action A
WHERE (A.PersonID = P.PersonID))
AS 'Period From',
产生结果如
yyyy-mm-dd(例如2010-03-20)
但我希望结果像
dd / mm / yyyy(例如20/03/2010)
任何帮助将不胜感激。 感谢。
答案 0 :(得分:5)
试试这个:
select convert(varchar(8), convert(datetime, min(a.DateOfAction), 112), 103)
您的问题是,一旦您有日期格式,SQL Server将以其默认日期格式将其转储,您发现它是yyyy-mm-dd
。您需要将date
转换为varchar
才能获得所需的格式。但要从日期转换,您需要先转换为日期! 112是yyyymmdd
的格式,103是dd/mm/yyyy
的格式,因此这就是您需要这些格式的原因。 (Books Online reference for date formats)
答案 1 :(得分:1)
Declare @date nvarchar(100)
set @date = '20100320'
select convert(varchar, CONVERT(datetime, @date, 109), 103)
您可以使用
convert(varchar, CONVERT(datetime, A.DateOfAction, 109), 103)