在SQL Server 2008中,如何将“MMMM DD,YYYY
”类型的字符串(即June 01, 2013
)转换为常规日期时间类型(20130601
)?
据我所知,Convert()
只能将日期转换为字符串,而不是相反。我确定某处有一个标准化的答案,但我找不到一个用于SQL Server的答案。我应该编写自定义过程来解析字符串吗?
答案 0 :(得分:1)
虽然不建议以字符串格式存储日期,但您仍然可以正确地将字符串转换为日期。如果您知道确切的格式,请避免使用cast
并使用convert
- 请参阅可能的格式here。
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.