如何在SQL里边提取时间并转换成TIMESTAMP

来源:百度知道 编辑:UC知道 时间:2024/06/29 21:57:15
如何在MSSQL环境里边提取时间并转换成TIMESTAMP格式,谢谢。
我要先GETDATE出来一个数据,但是他是DATETIME型的,我要直接让他成为TIMESTAMP型的,怎么做到。
那个我照着做了,但是程序说不允许DATETIME向TIMESTAMP的隐性转换,并让我使用CONVERT函数,我应该怎么做?
还有我想知道,如果我要存储操作日志为什么要用TIMESTAMP类型,用DATETIME不可以吗?还是说,书上的方法太累赘?

没看明白你的用意!! timestamp 通常用作给表行加版本戳的机制。 存储大小为 8 个字节。 timestamp 数据类型只是递增的数字,不保留日期或时间

每个数据库都有一个计数器,当对数据库中包含 timestamp 列的表执行插入或更新操作时,该计数器值就会增加。 该计数器是数据库时间戳。 这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。 一个表只能有一个 timestamp 列。 每次修改或插入包含 timestamp 列的行时,就会在 timestamp 列中插入增量数据库时间戳值。使用某一行中的 timestamp 列可以很容易地确定该行中的任何值自上次读取以后是否发生了更改。 如果对行进行了更改,就会更新该时间戳值。 如果没有对行进行更改,则该时间戳值将与以前读取该行时的时间戳值一致。

你如果是要返回数据库的当前时间戳值,可以使用 @@DBTS。
@@DBTS 返回当前数据库最后使用的时间戳值。 插入或更新包含 timestamp 列的行时,将产生一个新的时间戳值。
USE AdventureWorks;
GO
SELECT @@DBTS
-------------------------------------------------

这样是吗?
SELECT
CAST(GETDATE() AS timestamp) AS UsingCast,
CONVERT(timestamp, GETDATE(), 120) AS UsingConvert;
GO
这是取当前时间并转换成 timestamp

select cast(getdate() as timestamp)

select CONVERT(varchar(8) , getdate(), 114 )

成了