在SQL Server中,将“mm dd,yyyy”字符串转换为datetime格式

时间:2013-07-30 21:58:16

标签: sql sql-server sql-server-2008

在SQL Server 2008中,如何将“MMMM DD,YYYY”类型的字符串(即June 01, 2013)转换为常规日期时间类型(20130601)?

据我所知,Convert()只能将日期转换为字符串,而不是相反。我确定某处有一个标准化的答案,但我找不到一个用于SQL Server的答案。我应该编写自定义过程来解析字符串吗?

1 个答案:

答案 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.