sql-server - SQL Server 将时间戳数据类型转换为十进制

标签 sql-server sql-server-2008 tsql

一直在尝试解决这个问题,根据 MSDN 上的 Cast 和 Convert 文档,这应该是可能的( http://msdn.microsoft.com/en-us/library/ms187928.aspx )

查看转换表。

enter image description here

我正在运行以下代码:

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

但是我只是收到以下错误:

Error converting data type timestamp to numeric.

根据文档,这应该是可能的,还是我遗漏了什么? 请注意,我还需要转换回相同的时间戳值。

SELECT TimeStampColumn, Convert(timestamp, Convert(decimal, TimeStampColumn)) 
FROM TableName

最后,上面的查询应该呈现相同的值。

最佳答案

试试这个;尽管 MSDN 说这是隐式转换,但实际上不起作用。所以,我正在做的是将其转换为 INT,然后转换为十进制(INT 到十进制无论如何都是隐式的)

select val, CAST((CONVERT(bigint, timestampcol)) as decimal) as 'TS as decimal' 
from teststmp

关于sql-server - SQL Server 将时间戳数据类型转换为十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10759089/

相关文章:

SQL - 简单的 'OR' 不起作用!

c# - Linq 语句中的“让”生成交叉连接

sql - 现实生活中的示例,何时在 SQL 中使用 OUTER/CROSS APPLY

sql - 从两个表中查找日期时间之间的时间间隔

sql-server - SQL Server : finding gaps in employment - island and gap problem

sql-server - SQL Server正则表达式约束

sql-server - 现在如何在 SQL Server mgmt studio 中使用 DATETIME 进行插入

sql-server-2008 - 在 SQL Server Management Studio 上使用解决方案/项目

sql - 如何在不多次调用函数的情况下在 case 语句中使用函数调用

sql-server - 有没有一种方法可以在不硬编码数据库名称的情况下查询 SQL Server 链接服务器?