SQL 服务器使用 CONVERT() 忽略给定格式

SQL Server ignores given format with CONVERT()

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

您正在以 date/time 格式获得输出,格式正确,用于输出。日期和时间以内部格式存储。 convert() 在字符串和内部格式之间转换值。

如果你想以不同的形式输出,你可以使用convert(varchar(), . . .)来获得你想要的格式。

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

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

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

输出将是:20-02-2015