将格式为“dd/mm/yyyy hh:mm:ss”的varchar转换为DateTime

4
我遇到了以下问题。如何将格式为以下字符串转换为DateTime类型?
SELECT CONVERT(DATETIME,LEFT('26/03/2012 00:00:00',10))

上述错误信息如下:

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


在已经是字符串的内容上调用CONVERT(char)是毫无意义的。这个字符串是从哪里来的?为什么它现在已经被转换成了datetime - Damien_The_Unbeliever
@Damien_The_Unbeliever 我已经修改了 - whytheq
3个回答

7
你可以使用样式为103(dd/mm/yyyy)的CONVERT函数,有关详细信息,请参见此链接
SELECT CONVERT(DATETIME,'26/03/2012 00:00:00',103)

1

我不建议在问题可以通过更本地的方式解决时(通过CONVERTstyle参数),更改连接设置。 - Damien_The_Unbeliever
@Damien_The_Unbeliever 我同意 - whytheq
@whytheq 在向表中插入初始值之后将其恢复到原始状态的问题出在哪里?无论如何,您应该使用文化独立的 ISO 8601 提供日期。 - Lukasz Szozda

1

试试这个:

SELECT CONVERT(DATETIME,LEFT('26/03/2012 00:00:00', 10),105)

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