为什么sql SERVER 2005的timestamp类型的返回值为(blob) 8 bytes

红柚皮 2016-08-10 03:35:29
菜鸟求教,如题,为什么sql SERVER 2005的timestamp类型的返回值为(blob) 8 bytes ?
...全文
1906 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
红柚皮 2016-08-23
  • 打赏
  • 举报
回复
结贴了还能不能回复
红柚皮 2016-08-11
  • 打赏
  • 举报
回复 1
引用 10 楼 roy_88 的回复:
timestamp--不用赋值,由数据库通过@@DBTS自动生成
你看我上面那个图中,也没有自动生成啊,返回值为(blob) 8 bytes,这什么玩意,不是返回值应该是“0x00000000000007DA”类似的值吗
中国风 2016-08-11
  • 打赏
  • 举报
回复
timestamp--不用赋值,由数据库通过@@DBTS自动生成
红柚皮 2016-08-11
  • 打赏
  • 举报
回复
引用 8 楼 roy_88 的回复:
更新时每次更新为系统时间

update t set dt=getdate()--更新其它栏位时,把DT一起更新

或用触发器 更新这个栏位

timestamp不能实现吗,本来快明白了,又有点晕了,timestamp类型的数据,还得给它赋值吗
最后一列是我的timestamp类型数据,没有默认值,插入一个数据时,都成这样子
中国风 2016-08-11
  • 打赏
  • 举报
回复
更新时每次更新为系统时间 update t set dt=getdate()--更新其它栏位时,把DT一起更新 或用触发器 更新这个栏位
红柚皮 2016-08-11
  • 打赏
  • 举报
回复
引用 6 楼 roy_88 的回复:
要记录当前时间 用默认值就行了 e.g.
create table t(ID int,Dt datetime default (getdate()))
INSERT t(ID)VALUES(1);
SELECT * FROM t
这个只能记录插入时的时间吧,更新时,这个数据是不变的啊
中国风 2016-08-11
  • 打赏
  • 举报
回复
要记录当前时间 用默认值就行了 e.g.
create table t(ID int,Dt datetime default (getdate()))
INSERT t(ID)VALUES(1);
SELECT * FROM t
红柚皮 2016-08-11
  • 打赏
  • 举报
回复
引用 4 楼 roy_88 的回复:
不是当前时间 是通过 SELECT @@DBTS生成的
哦哦,我以为和mysql一样,我如果想做到每次更新行数据,该行就可以记录下当前时间 该怎么做呢
中国风 2016-08-11
  • 打赏
  • 举报
回复
不是当前时间 是通过 SELECT @@DBTS生成的
红柚皮 2016-08-11
  • 打赏
  • 举报
回复
引用 1 楼 roy_88 的回复:
时间戳--也叫行版本 是以二进制方式存储 可转为数字和时间格式
sql SERVER 2005增加一个timestamp类型的字段“时间戳”, sql语句为: ALTER TABLE [b_temp] ADD [时间戳] timestamp NULL GO 这样做对吗,这样做更新行数据时,系统会自动取当前时间吗
红柚皮 2016-08-11
  • 打赏
  • 举报
回复

sql SERVER 2005增加一个timestamp类型的字段“时间戳”,
sql语句为:
ALTER TABLE [b_temp] ADD [时间戳] timestamp NULL
GO
这样做对吗,这样做更新行数据时,系统会自动取当前时间吗

红柚皮 2016-08-11
  • 打赏
  • 举报
回复
引用 14 楼 roy_88 的回复:
二进制大多数工具都是显示不出来的 在查询分析器里查看
知道了 非常感谢
中国风 2016-08-11
  • 打赏
  • 举报
回复
二进制大多数工具都是显示不出来的 在查询分析器里查看
红柚皮 2016-08-11
  • 打赏
  • 举报
回复
引用 12 楼 roy_88 的回复:
CREATE TABLE Tmp(ID INT);
INSERT INTO Tmp VALUES(1);
ALTER TABLE Tmp ADD [时间戳] timestamp NULL

SELECT * FROM dbo.Tmp
/*
ID 时间戳
1 0x0000000000002711
*/


你在SSMS是显示不了内容的,在查询分析器里查看


是因为我用工具的原因吗 这样查出来还是这个样子的
中国风 2016-08-11
  • 打赏
  • 举报
回复
CREATE TABLE Tmp(ID INT);
INSERT INTO Tmp VALUES(1);
ALTER TABLE Tmp ADD [时间戳] timestamp NULL 

SELECT * FROM dbo.Tmp
/*
ID	时间戳
1	0x0000000000002711
*/
你在SSMS是显示不了内容的,在查询分析器里查看
中国风 2016-08-10
  • 打赏
  • 举报
回复
时间戳--也叫行版本 是以二进制方式存储 可转为数字和时间格式

34,870

社区成员

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

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