急救:怎样让sql server2000识别十九世纪的日期?

icehell 2004-07-17 11:59:15
在我的一个DBF文件中有一个日期字段里的内容为:
1886-7-15 3:30:00
可是当我将其导入sql server2000时,却提示说日期数据溢出,当我把这条记录删除时,导入就正常,请问怎么办?
...全文
165 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
icehell 2004-07-18
  • 打赏
  • 举报
回复
就是改成datetime也还是不行啊!!!!!
zjcxc 元老 2004-07-18
  • 打赏
  • 举报
回复
--查询分析器中,执行这句是否正确?

select cast('1886-7-15 3:30:00' as datetime)
zjcxc 元老 2004-07-17
  • 打赏
  • 举报
回复
所以日期溢出的话,表明你的日期类型用了smalldatetime
cathl 2004-07-17
  • 打赏
  • 举报
回复
你的表时间字段数据类型可能是smalldatetime,只能识别1900/1/1到2079/6/6。
改为datetime即可!
zjcxc 元老 2004-07-17
  • 打赏
  • 举报
回复
datetime

从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确度为百分之三秒(等于 3.33 毫秒或 0.00333 秒)。



smalldatetime

从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据精确到分钟。29.998 秒或更低的 smalldatetime 值向下舍入为最接近的分钟,29.999 秒或更高的 smalldatetime 值向上舍入为最接近的分钟。

zjcxc 元老 2004-07-17
  • 打赏
  • 举报
回复
select cast('1886-7-15 3:30:00' as datetime)
--结果: 1886-07-15 03:30:00.000



select cast('1886-7-15 3:30:00' as smalldatetime)

--结果:
服务器: 消息 296,级别 16,状态 3,行 1
从 char 数据类型到 smalldatetime 数据类型的转换导致 smalldatetime 值越界。
zjcxc 元老 2004-07-17
  • 打赏
  • 举报
回复
你的字段类型定义成smalldatetime了吧?

改为datetime就可以了.
popsn 2004-07-17
  • 打赏
  • 举报
回复
学习。

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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