【发布时间】:2012-05-25 17:45:55
【问题描述】:
一直试图弄清楚这一点,并根据 MSDN 上的 Cast and Convert Documentation ,这应该是可能的( http://msdn.microsoft.com/en-us/library/ms187928.aspx)
查看转换表。
我正在运行以下代码:
CREATE TABLE TableName (
ID bigint Identity(1,1),
SomeValue nvarchar(20) not null,
TimestampColumn timestamp not null)
Insert Into TableName (SomeValue)
values ('testing')
SELECT Convert(decimal, TimeStampColumn) from TableName
但是我只是收到以下错误:
将数据类型时间戳转换为数字时出错。
根据文档,这应该是可能的,还是我遗漏了什么? 请注意,我还需要转换回相同的时间戳值。
SELECT TimeStampColumn, Convert(timestamp, Convert(decimal, TimeStampColumn))
FROM TableName
最后上面的查询应该呈现相同的值。
【问题讨论】:
-
您还应该考虑在Database Administrators 上提出这个问题 - 高级查询、数据库内部结构、数据库设计和所有其他与数据相关的问题都在那里讨论,并且信噪比非常高.
-
我最初认为这与精度/比例有关,但不是来自我的测试。我不使用
timestamp,但我很好奇原因。 -
@JNK 我也有同样的想法。但您输入的精度/比例无关紧要。二进制也应该转换为十进制,时间戳本质上是二进制(8)
-
@JohnHartsock 您的问题引起了人们的兴趣,也许还有些混乱。您介意用表定义更新我们吗?
-
@swasheck 使用表定义和插入语句更新了问题。
标签: sql-server sql-server-2008 tsql