在SQL Server中将varchar转换为datetime

69
如何在SQL Server 2008中将格式为mmddyyyy的字符串转换为datetime
目标列应为DateTime
我已经尝试使用Convert函数和大多数Date样式值,但是我收到了一个错误消息:

'将varchar数据类型转换为datetime数据类型导致超出范围的值。'


1
T-SQL是否有类似MySQL的str_to_date函数?http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_str-to-date - dnagirl
2
OP想要mmddyyyy格式;选择convert(datetime,'12312009') -->>>_Msg 242, Level 16, State 3, Line 1 将char数据类型转换为datetime数据类型时,导致超出范围的datetime值。 - KM.
13个回答

0

在插入或更新时,SQL标准日期必须介于1753年1月1日12:00:00 AM和9999年12月31日11:59:59 PM之间。

因此,如果您在1/1/1753之前进行插入/更新操作,将会出现此错误。


OP被困在MMDDYYYY格式中。你的信息实际上并没有帮助到OP。 - Jeff Moden

0
这个问题的根本原因可能在于区域设置 - 数据库期待 YYYY-MM-DD 格式,而某个应用程序发送的是例如 DD-MM-YYYY (俄罗斯语言环境格式),就像我的情况一样。我所做的一切就是将语言环境格式从俄罗斯语改为英语(美国),问题得到了解决。

0

这似乎是最简单的方法。

SELECT REPLACE(CONVERT(CHAR(10), GETDATE(), 110),'-','')

不适用于原帖作者。原帖作者被困在MMDDYYYY的格式中。 - Jeff Moden

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接