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时间戳插入其他内容[重复]的主要内容,如果未能解决你的问题,请参考以下文章