数据库中插入一个datetime时出错,搞不懂是为什么。。。

hproof 2003-05-29 06:10:42
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
Insert into [File](FTitle,StoreId,FSize,State,AttachCount,WriterId,WriterName,Wr
iterDomainId,WriterDomainName,WriterTime,CurrentDomainId,CurrentDomainName,SubDo
mainId,SubDomainName,TransTime,ParentFileId,ModifyId,ModifyName) values ('新文件
',0,20,0,0,1,'admin',587,'XX市','2003-05-29 17:52:27',587,'XX市',0,'_f','000
1-01-01 0:00:00',0,0,'_f');Select @@identity
All done!
Press any key to continue

--------------------------------
主要是时间字段 WriterTime 、TransTime ,对应的字符串为:
'2003-05-29 17:52:27'、'0001-01-01 0:00:00'
取值为 DateTime.Now、new DateTime(0);
但我看不出有什么问题。。。。

所有的字符为varchar(50),所有的数值为int(4),所有的日期为datetime(8)
执行时使用 ret = Cmd.ExecuteScalar (); try 后得到上面的信息

// 字段很多、很乱,但代码是自动生成的:),应该不会对应错误,而且我也检查过了。其它数据表中也有使用 datetime 的字段,但操作正常

郁闷。。。


...全文
186 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hproof 2003-06-06
  • 打赏
  • 举报
回复
我像是赖帐的人吗?~
stationxp 2003-05-30
  • 打赏
  • 举报
回复
结帖!!
stationxp 2003-05-30
  • 打赏
  • 举报
回复
Insert into [File](FTitle,StoreId,FSize,State,AttachCount,WriterId,WriterName,Wr
iterDomainId,WriterDomainName,WriterTime,CurrentDomainId,CurrentDomainName,SubDo
mainId,SubDomainName,TransTime,ParentFileId,ModifyId,ModifyName) values ('新文件
',0,20,0,0,1,'admin',587,'XX市',getDate(),587,'XX市',0,'_f','1800-01-01',0,0,'_f');Select @@identity

在 Microsoft® SQL Server™ 2000 中,日期和时间数据使用 datetime 和 smalldatetime 数据类型存储。使用 datetime 数据类型存储从 1753 年 1 月 1 日至 9999 年 12 月 31 日的日期(每个数值要求 8 个字节的存储空间)。使用 smalldatetime 数据类型存储从 1900 年 1 月 1 日至 2079 年 6 月 6 日的日期(每个数值要求 4 个字节的存储空间)。

fengyuyan 2003-05-29
  • 打赏
  • 举报
回复
这是可调的。
ChenHaiHua 2003-05-29
  • 打赏
  • 举报
回复
'0001-01-01 0:00:00'有问题

Microsoft SQL Server 默认的时间范围是 1950-2049,表示截止年份是 2049
fengyuyan 2003-05-29
  • 打赏
  • 举报
回复
如果你插入的时间是系统当前时间。最好是在标的相应字段处设置默认值。
如:
sqlserver:
字段:date 的默认值为 getdate().
这样当你插入一条记录时。数据库会自动给你把时间填上。
stationxp 2003-05-29
  • 打赏
  • 举报
回复
Insert into [File](FTitle,StoreId,FSize,State,AttachCount,WriterId,WriterName,Wr
iterDomainId,WriterDomainName,WriterTime,CurrentDomainId,CurrentDomainName,SubDo
mainId,SubDomainName,TransTime,ParentFileId,ModifyId,ModifyName) values ('新文件
',0,20,0,0,1,'admin',587,'XX市',getDate(),587,'XX市',0,'_f','000
1-01-01',0,0,'_f');Select @@identity
jsntsam 2003-05-29
  • 打赏
  • 举报
回复
'0001-01-01 0:00:00'有问题。

任何数据库系统的时间是有范围的。不知你用的是什么数据库。
查看数据库参考中时间的范围。
jzw995123 2003-05-29
  • 打赏
  • 举报
回复
假设你定义的字段类型是datatime
现在,用存储过程实现添加操作的时候,在存储过程的参数列表中,用一个datatime类型的参数来接受。
但是你调用存储过程之前,给它传递参数的时候,必须给它的是string,并且年月日的排列也是有讲究的!

企业智慧台规划与建设总体方案是一个针对企业数字化转型需求而设计的综合性IT解决方案。该方案旨在构建一个、高效和灵活的台架构,通过整合企业内外部的数据资源、业务流程和应用服务,为企业提供一个统一的数字化运营平台。在当前的商业环境下,企业面临着激烈的市场竞争和不断变化的客户需求。为了应对这些挑战,企业需要快速响应市场变化,提高运营效率,降低成本,并实现持续创新。因此,企业智慧台的规划和建设成为了关键任务。该方案的核心思想是将企业的业务逻辑、数据管理和技术创新紧密结合起来,形成一个高度集成的智慧台系统。通过构建标准化的数据模型和接口,实现数据的一致性和可访问性,同提供丰富的数据分析和挖掘工具,帮助企业发现潜在的商业价值和机会。此外,该方案还注重用户体验和业务敏捷性。通过构建灵活的应用开发框架和API接口,支持快速的业务迭代和定制化需求,满足不同部门和角色的个性化需求。同,通过智能化的自动化流程和决策支持系统,提高企业的决策效率和准确性。总之,企业智慧台规划与建设总体方案是一个全面而深入的IT解决方案,旨在帮助企业实现数字化转型,提升竞争力和创新能力。通过构建集、高效和灵活

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧