MSSQL数据库的时间格式怎么来的?
MSSQL的datetime格式一定是“2012-01-04 13:06:31.000”吗?哪里查看数据库的时间格式和修改?
我写的程序在我这边跑是OK的,但到客户那边就报时间溢出
“SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM ”
我这边又无法模拟,看代码觉得完全OK啊。所有涉及到时间的都加了DateTime.Now啊,而且数据库的日期字段都设成可为空。
所以我猜会不会跟用户环境有问题,比如说软件装在PC A上,数据库装在PC B上,但PC A的时间格式是yyyy/MM/dd这种,但数据库却是MM/dd/yyyy这种。
如果谁也碰到过这种情况,帮忙分析一下,谢谢!
if (usersEntity == null) { usersEntity = new UsersEntity { GroupID = groupEntity.GroupID, UserName = userName, UserType = "USER", UserEmail = email ?? string.Empty, AddDate = DateTime.Now, UpdateDate = DateTime.Now,……
//??string sql ="....UpdateDate=getdate()";
[解决办法]
跟SQL的datetime格式无关,SQL中没有时间格式给你设置,看你的错误提示,并不是时间格式问题,而是客户端得到的并不是datetime类型,强行insert入所导致的错误.
[解决办法]
那你数据库中时间字段的值究竟保存的格式是什么?
你调整机器时间格式后,然后再插入一条数据,再读出来试过没有。
[解决办法]
你让他重现错误并截屏
[解决办法]
SQL貌似不存在时间格式,在SSMS中查出来的只是显示的样子
问题可能出在你保存数据的部分,就是insert或update部分,
是不是没有使用SqlParameter而是接拼的
[解决办法]
1.首选用sql profiler跟踪一下最终执行的sql语句,看下是不是传入的时间有问题
2.可以在sql中用isdate判断下是否是日期
[解决办法]
他不会搞的拼接的吧,这个你先用Sql Server Profiler来探查一下执行的是什么SQL语句,然后把SQL贴出来再看
Sql Server Profiler这个搜一下就知道怎么用了