NOVOTS KMS 词汇表 Glossary    联系我们 Contact Us
查询 Search  
   
按类别浏览 Browse by Category
NOVOTS KMS .: 数据库 .: 关于DateTime在远程服务器使用以及日期与时间格式的问题

关于DateTime在远程服务器使用以及日期与时间格式的问题

from http://blog.csdn.net/blow_jj/archive/2007/05/14/1607888.aspx

问题描述:
原先一直正常使用的ACT CRM Protype在今天优化了代码之后突然不好用了,提示"The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value."但问题是代码优化没有修改业务逻辑与实现,只是针对结构的调整,本地调试没有问题,但是上传却怎么也调试不过,而之前一天在服务器还好好的运行。

解决过程:
out-of-range datetime 是超出时间范围但明显我输入的时间没有超出范围....显然是文本日期数据转换为SQL Server识别的日期进行插入这步出错,开始怀疑是优化过程不小心修改了函数或者参数传递问题但本地为什么能通过呢?百思不得其解。

经过两个多小时调试跟踪了所有有关日期的变量,总算发现将DATEMODIFY设置为固定值01.01.1900是可以正确添加的,问题进一步缩小为生成当前日期的值上,于是跟踪之,突然发现用DateTime.Now.ToLocalTime().ToString()得到的服务器端运行时间是13.05.2007 22:46:00<==注意这里的13
查看以前的记录发现数据中有05.12.2007格式的2007年5月12日添加的数据,总算找到了问题所在:这里的13是月而本地执行得到的格式是 05.13.2007 22:46:00,这是由于远程服务器(在法国)时间环境不同造成的,因为13大于12月所以提示out-of-range datetime。于是将DateTime.Now.ToLocalTime().ToString()换为DateTime.Now.ToString("MM.dd.yyyy HH:mm:ss")来强制约束日期输出格式,果然问题得到解决:)

这里还有个值得警惕的地方是现在我添加的记录在服务器中是我现在添加的数据日期在服务器端(法国)由GridView显示的是13.05.2007 23:28:00而不是原本想象中的05.13.2007 23:28:00。

总结:现在本地服务器的默认输出日期格式是MM.dd.yyyy,远程服务器的默认输出日期格式是dd.MM.yyyy,而SQL Server数据库所默认需要的格式是MM.dd.yyyy,如果不强制约束格式为MM.dd.yyyy的话本地没有问题而在服务器上运行时每个月的前12天也没有问题(其实是时间记录有问题但我们发现不了)但13号就将是问题爆发日<====这才是最可怕的

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/blow_jj/archive/2007/05/14/1607888.aspx


这篇文章对你多有用?

相关文章

article 使用域组策略设置IE受信任站点
...

(No rating)  3-4-2015    Views: 2153   
article 强者更强 玩转DHCP超级作用域
文章含图片,请下载附件阅读(doc格式)

  7-3-2008    Views: 1424   
article Jsp中的四大作用域
Jsp中的四大作用域的简单理解,详情见附件

(No rating)  3-12-2019    Views: 302   

用户评语

添加评语
当前还没有评语.


.: .: .: .: .:
[ 登陆 ]
北京护航科技有限公司 2006

Novots Technologies Limited