SQL Server INSERT时间戳插入其他内容[重复]

Posted

技术标签:

【中文标题】SQL Server INSERT时间戳插入其他内容[重复]【英文标题】:SQL Server INSERT timestamp inserting something else [duplicate] 【发布时间】:2012-12-11 10:38:34 【问题描述】:

可能重复:How do I get date/time information from a TIMESTAMP column?How to convert SQL Server’s timestamp column to datetime format

我正在尝试执行一个插入时间戳的简单查询。查询运行没有问题,但这是插入到列中的内容,而不是当前时间:

0x00000000000007D2

这是查询:

 INSERT INTO auctions (title, description, finish_date) 
 VALUES ('Some title', 'Some description', '05/03/2003 11:15:45')

从我读到的内容来看,Timestamp 已被称为 Rowversion 的东西弃用,但我在管理工作室中找不到这样的数据类型。

拍卖表:

auction_id - bigint title - nvarchar(MAX) description - nvarchar(MAX) start_date - timestamp finish_date - datetime

【问题讨论】:

See my answer to this previous SO question - TIMESTAMP 与日期和/或时间无关 - 它只是一个数字的、系统增加的行版本 数字.... 现在说得通了,谢谢 :) 另一条建议:不要只使用nvarchar(max) 来处理所有事情。考虑一下您的标题和描述的最大长度真的 - 10 亿个字符 - 每个 - 真的!?!?请参阅What's the Point of Using VARCHAR(n) Anymore? - 谨慎 使用(MAX) 类型 - 仅当您确实必须存储超过 4,000 个 Unicode 字符时。 哦,是的,这只是为了测试目的,知道最大值总是好的。谢谢你的建议:) 【参考方案1】:

您不能使用 Timestamp 类型来存储日期。

时间戳基本上是在单个数据库中完成的插入和更新操作的计数器,因此它是给定数据库本地的,没有实时值。

为了符合您的插入语句,您应该使用 DateTime 代替 - 既适用于您的 start_date,也适用于您的 finish_date

查看此链接:http://msdn.microsoft.com/en-us/library/ms182776(v=sql.90).aspx

【讨论】:

我认为可以使用 Timestamp 插入当前时间? 不。奇怪的是,SQL Server 中的时间戳数据类型本身并没有真正的时间概念。仅作为相对于在数据库中完成的特定操作的时间。 哇,谢谢,我好像对 mysql 的 TIMESTAMP 感到困惑

以上是关于SQL Server INSERT时间戳插入其他内容[重复]的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2008 行插入和更新时间戳

sql server 在不匹配时与多个插入合并

插入几行后,Sql server Insert 变慢

使用 INSERT INTO (SQL Server 2005) 插入多个值

SQL Server 默认日期时间戳?

SQL SERVER 中,after insert触发器是啥意思,应该如何使用?