T-SQL日期转换dd / mm / yyyy到yyyy-mm-dd

时间:2015-09-02 08:39:45

标签: tsql sql-server-2008-r2 type-conversion

我已经阅读过几篇关于从dd / mm / yyyy转换为yyyy-mm-dd的帖子,但代码无效(CONVERT AND CAST)。请参阅下面的示例,并建议您是否可以提供帮助,因为我收到的错误是“转换从字符串转换日期和/或时间时失败”#39;如果我将date_engaged更改为' 2010-09-12'它会工作,但我需要以某种方式转换它,因为如果我说选择getdate(),它将吐出这种日期格式(yyyy-mm-dd)。

这很有趣,因为代码在我的工作PC上不适用于我,而且我使用的是Microsoft SQL Server Management Studio 2008,但在家里,它的工作非常好。

HALF_DOWN

THX

1 个答案:

答案 0 :(得分:1)

您需要查看MSDN docs for CONVERT,您会发现我们需要提供格式,以便根据我们的重新规定格式化日期。它在您的家庭系统上工作的原因可能是因为您的系统是以您提供日期的格式配置的。

解决您的问题

DECLARE @x VARCHAR(13) = '12/09/2010'

SELECT RIGHT(@x,4) + '-' + LEFT(RIGHT(@x,7),2) + '-' + LEFT(@x,2)

<强> DEMO

旁注:

建议不要使用NVARCHARVARCHARCHAR来存储日期,以避免出现这些类型的问题。您可以更好地使用DATE数据类型来存储日期。