Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql 为什么在这个实例中使用时间戳而不是日期时间?_Tsql_Datetime_Sql Server 2014 - Fatal编程技术网

Tsql 为什么在这个实例中使用时间戳而不是日期时间?

Tsql 为什么在这个实例中使用时间戳而不是日期时间?,tsql,datetime,sql-server-2014,Tsql,Datetime,Sql Server 2014,在我读过的许多关于SQL时间戳使用的例子中,一个典型的例子是添加了一个时间戳列,以防止出现一种竞争情况,即用户更改的数据由于另一个用户“先进入”而失去了完整性 更具体地说,在对行发出更新之前,业务逻辑将交叉检查他们认为正在更改的时间戳,以便不会与行版本控制混淆 问题 为什么DATETIME不足以完成这项任务?事实上,按照这种逻辑,为什么任何唯一的数据类型都不合适呢?NEWID每次发布更新时,例如?似乎我错过了时间戳的基本功能,它会自动更新 因此,在一行上调用UPDATE将自动增加它的TIMEST

在我读过的许多关于SQL时间戳使用的例子中,一个典型的例子是添加了一个时间戳列,以防止出现一种竞争情况,即用户更改的数据由于另一个用户“先进入”而失去了完整性

更具体地说,在对行发出更新之前,业务逻辑将交叉检查他们认为正在更改的时间戳,以便不会与行版本控制混淆

问题
为什么DATETIME不足以完成这项任务?事实上,按照这种逻辑,为什么任何唯一的数据类型都不合适呢?NEWID每次发布更新时,例如?

似乎我错过了时间戳的基本功能,它会自动更新

因此,在一行上调用UPDATE将自动增加它的TIMESTAMP列,而无需我手动设置它


我将把这个答案留在这里,以防有人对我可能遗漏的其他内容发表评论。

在mySQL中,时间戳是一种物理上比datetime更小的数据类型。此外,时间戳是通用的,忽略所有时区。对于国际产品,这一点很重要


不建议使用ID,因为它们通常在插入/更新时生成

根据我的经验,一个短整数就足够了。@Pointy-我看不出有任何理由它不会,这就是我的困惑所在。这是一个广泛提供的示例,我不确定我缺少了什么。你说的是哪种DBMS?@a_horse_with_no_name-SQL Server 2014。SQL Server中的时间戳不存储日期和时间。