我有一个char
列,将日期存储为yyyy-mm-dd
。我需要将这些日期显示为mm-dd-yyyy
。
提前致谢。
答案 0 :(得分:4)
问题的根源是因为您使用了错误的数据类型。日期应存储为日期。任何其他事情都只是一种痛苦。要获得格式,首先必须将字符串转换为日期 你可以格式化它。
这是一个例子。
select convert(date, YourDateColumn, 101)
您可以在此处详细了解转化。 https://msdn.microsoft.com/en-us/library/ms187928.aspx
答案 1 :(得分:2)
如果2012+你可以尝试
Select Format(GetDate(),'MM-dd-yyyy')
返回
2016年8月3日
转换字符串
Select Format(cast('2016-08-03' as date),'MM-dd-yyyy')
答案 2 :(得分:0)
DECLARE @Date varchar(12)='2012-01-29'
SELECT FORMAT(CONVERT(datetime,LEFT(@Date,4) + SUBSTRING(@Date,6,2) + SUBSTRING(@Date,9,2)), 'MM-dd-yyyy', 'en-US' ) AS Result
这对处理有点重,但它确实有效。
此答案还假设日期文本列中的 ALL 值格式为YYYY-MM-DD。如果您有任何未按字符串格式化的值,那么您将遇到问题。
显然,您需要将@Date变量替换为日期文本列的名称。我想提供一个示例,您可以轻松地运行以检查答案。