2013-04-15 81 views
2

我有一个从平面文件中以DD/MM/YYYY格式保存的日期。 “20/04/2013”​​字符串的日期转换失败

当我尝试将其插入到我的SQL Server数据库中时,它将值更改为MM/DD/YYYY。

所以当然在那里没有20个月,我的代码失败了。我该如何解决这个问题?

我试过这样的东西,我没有运气。

SELECT CONVERT(datetime, CONVERT(varchar, '20/04/2013', 101)) 
+2

101是美国格式的代码,你的想法完全告诉你的转换使用MM/DD/YYYY - 您应该使用103是DD/MM/YYYY。关于转换和转换代码的更多信息,请参见: http://msdn.microsoft.com/en-us/library/ms187928.aspx –

回答

2

只是这样做直接,

SELECT CONVERT(datetime, '20/04/2013', 103) 
+0

谢谢,这确实有窍门! – Etienne

+0

不客气':D' –

1

在SQL Server上,你需要使用SET DATEFORMAT选项。 (见http://msdn.microsoft.com/en-us/library/ms189491.aspx)。

在你的情况,你需要执行上述SELECT语句之前发出以下命令:

SET DATEFORMAT dmy 

或者,也可以在全球范围内改变DATEFORMAT设置服务器。

0

定义和用法 CONVERT()函数是将一种数据类型的表达式转换为另一种数据类型的通用函数。

CONVERT()函数可用于以不同格式显示日期/时间数据。

选择转换(日期时间,'20/04/2013' ,103) enter link description here

相关问题