将存储在SQL Server中的日期显示为Char yyyy-mm-dd为mm-dd-yyyy

时间:2016-08-03 18:22:20

标签: sql-server

我有一个char列,将日期存储为yyyy-mm-dd。我需要将这些日期显示为mm-dd-yyyy

提前致谢。

3 个答案:

答案 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变量替换为日期文本列的名称。我想提供一个示例,您可以轻松地运行以检查答案。