SQL Server使用CONVERT()忽略给定的格式

时间:2015-02-19 13:22:37

标签: sql sql-server-2005 type-conversion

我认为这应该是一项相当容易的任务,但不知怎的,它失败了。我将日期存储在像dd-mm-yyyy这样的文本字段中,并使用CONVERT(datetime, [MyDateAsTextField], 105)将它们转换为DateTime类型。但我得到的输出是yyyy-dd-mm 00:00:00.000,我不知道为什么。我错过了什么?

2 个答案:

答案 0 :(得分:3)

您将输出作为用于输出的正确格式的日期/时间。日期和时间以内部格式存储。 convert()在字符串和内部格式之间转换值。

如果您希望以不同的形式输出,可以使用convert(varchar(), . . .)来获取所需的格式。

但更重要的是,您不应存储日期/时间值字符串。您应该使用内置类型。它们提供了更多功能。

答案 1 :(得分:0)

不使用数据类型作为日期时间而是使用Char(10)或Varchar(10)以及日期样式(如105)用于dd-mm-yy(意大利语)。

例如为: CONVERT(Char(10),getdate(),105)

输出将是: 20-02-2015