日期:2014-05-18  浏览次数:20436 次

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这种。这样当程序中将2012/01/04这种格式Insert进MM/dd/yyyy时会报溢出吗?

如果谁也碰到过这种情况,帮忙分析一下,谢谢!

C# code

if (usersEntity == null)
            {
                usersEntity = new UsersEntity
                {
                    GroupID = groupEntity.GroupID,
                    UserName = userName,
                    UserType = "USER",
                    UserEmail = email ?? string.Empty,
                    AddDate = DateTime.Now,
                    UpdateDate = DateTime.Now,
……



------解决方案--------------------
SQL code

--日期转换参数,值得收藏
select convert(varchar,getdate(),120)--2009-02-04 12:55:30
select replace(replace(replace(convert(varchar, getdate(),120),'-',''),' ',''),':','')--20090204125539
select convert(varchar(12),getdate(),111)--2009/02/04
select convert(varchar(12),getdate(),112)--20090204
select convert(varchar(12),getdate(),102)--2009.02.04
--其它我不常用的日期格式转换方法:
select convert(varchar(12),getdate(),101)--02/04/2009
select convert(varchar(12),getdate(),103)--04/02/2009
select convert(varchar(12),getdate(),104)--04.02.2009
select convert(varchar(12),getdate(),105)--04-02-2009
select convert(varchar(12),getdate(),106)--04 feb 2009
select convert(varchar(12),getdate(),107)--feb 04, 2009
select convert(varchar(12),getdate(),108)--12:57:20
select convert(varchar(12),getdate(),109)--feb  4 2009 
select convert(varchar(12),getdate(),110)--02-04-2009
select convert(varchar(12),getdate(),113)--04 feb 2009 
select convert(varchar(12),getdate(),114)--12:56:50:763

------解决方案--------------------
你时间字段用的是时间类型,还是字符串类似?

Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM

时间应该是1753年到9999年之间的。
------解决方案--------------------
用datetime 应该是会自动识别 不会出错的
------解决方案--------------------
开始-->设置-->控制面板-->区域和语言选项-->区域选项-->自定义-->日期 
--> 确认两边的日期格式是否相同.