请教sql语句中,Timestamp类型的数据如何赋值??

leechsh 2002-03-01 11:00:50
select count(*) from tb_Test where idt> '1998-08-01'
上面的语句在 sqlserver中运行就出错,告我‘Non-numeric character in datetime or interval’,不知道错在哪儿,哪位大虾指点一二。


其中idt是Timestamp类型的。
...全文
3137 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
leechsh 2002-03-01
  • 打赏
  • 举报
回复
不好意思,我用的是SqlServer Explorer来登陆informix数据库,操作是在Sqlserver中。同样的操作,对sqlserver中的表就可以正常运行,不知道为什么读取informix的timestamp类型的数据会出上面的错误。

问题没有表述清楚,实在是抱歉。
net_steven 2002-03-01
  • 打赏
  • 举报
回复
timestamp
SQL Server timestamp 数据类型与时间和日期无关。SQL Server timestamp 是二进制数字,它表明数据库中数据修改发生的相对顺序。实现 timestamp 数据类型最初是为了支持 SQL Server 恢复算法。每次修改页时,都会使用当前的 @@DBTS 值对其做一次标记,然后 @@DBTS 加1。这样做足以帮助恢复过程确定页修改的相对次序,但是 timestamp 值与时间没有任何关系。

在 SQL Server 7.0 版和 SQL Server 2000 中,@@DBTS 只在 timestamp 列中使用时其值才会递增。如果一个表包含 timestamp 列,则每次由 INSERT、UPDATE 或DELETE 语句修改一行时,此行的 timestamp 值就被置为当前的 @@DBTS 值,然后 @@DBTS 加1。

因为每一次修改时 timestamp 值都会改变,所以千万不要在键(特别是主键)中使用 timestamp 列。

若要记录表中发生的数据修改次数,可用 datetime 或 smalldatetime 数据类型来记录这些事件和触发器,这样,当发生修改时,就可以自动更新其值。

leechsh 2002-03-01
  • 打赏
  • 举报
回复
在win2k,Sqlserver中“Enter Slq”框中运行上面的Sql语句。

不知道错误在那儿,换成'08/01/1999'也不行。
bjay 2002-03-01
  • 打赏
  • 举报
回复
Timestamp类型的值,在insert记录时由SQL 自动加入的。

上述句是的错误是由'1998-08-01'引起的,不知你在什么环境下使用的?
bjay 2002-03-01
  • 打赏
  • 举报
回复
Timestamp类型的值,在insert记录时由SQL 自动加入的。

上述句是的错误是由'1998-08-01'引起的,不知你在什么环境下使用的?

11,850

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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