在 SQL Server 2008 中,如何将类型为 ' MMMM DD,YYYY
' (ie June 01, 2013
) 的字符串转换为常规的 datetime 类型 ( 20130601
)?
据我所知,Convert()
仅适用于将日期转换为字符串,而不是相反。我确信某处有一个标准化的答案,但我找不到适用于 SQL Server 的答案。我应该编写一个自定义过程来解析字符串吗?
在 SQL Server 2008 中,如何将类型为 ' MMMM DD,YYYY
' (ie June 01, 2013
) 的字符串转换为常规的 datetime 类型 ( 20130601
)?
据我所知,Convert()
仅适用于将日期转换为字符串,而不是相反。我确信某处有一个标准化的答案,但我找不到适用于 SQL Server 的答案。我应该编写一个自定义过程来解析字符串吗?
虽然不建议以字符串格式存储您的日期,但您仍然可以正确地将字符串转换为日期。当您知道确切的格式时,请避免使用cast
和使用-在此处convert
查看可能的格式。
set language english
select convert(datetime, 'June 01, 2013', 107)
-----------------------
2013-06-01 00:00:00.000
107 格式的转换取决于您的连接设置。例如,如果您的连接语言不是英语,您可能会收到错误消息
set language norwegian
select convert(datetime, 'June 01, 2013', 107)
-----------------------
Msg 241, Level 16, State 1, Line 2
Conversion failed when converting date and/or time from character string.