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
我认为这应该是一项相当容易的任务,但不知何故失败了。我将日期存储在 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