如何防止超出范围的日期时间值错误?

Jan*_*ngo 4 c# t-sql sql-server datetime sql-server-2005

我正在从c#应用程序传递一个特殊的Insert语句到sql server 2000/2005.有时,如果机器(安装了sql server)的datetime格式与我传入的不同,则会抛出错误.

例如:在插入声明中,我传递的是"2010-03-10 00:00:00-05:00",但机器区域日期设置不同.我收到这个错误: -

将char数据类型转换为datetime数据类型会导致日期时间值超出范围.

我可以在c#的Insert语句中传递一些通用日期格式,它与任何机器的区域日期时间设置完美配合.

gbn*_*gbn 5

"yyyymmdd"是最安全的,基本的ISO-8601格式."yyyy-mm-dd"有下面提到的链接问题

随着时间的推移:"yyyymmdd hh:mm:ss"

处理日期时,SQL Server可能有点奇怪.它主要在SQL Server 2008中使用新的日期和时间格式修复.Tibor Karaszi 最终文章

编辑:托尼罗杰森为不信之人撰写的一篇文章