2013-09-26 81 views
0

有没有一种方法可以在sql中设置一个取决于当前日期和时间的8位数字(以8为例)唯一ID?SQL中基于时间的唯一ID

我在一段我使用过的软件上看到过这种情况,并被告知可以在SQL中生成这个软件。

有没有人做过这个?

感谢 皮特

+0

这个独特的ID的目的是什么? –

+0

theres记录我在一天中的特定时间在表格中添加的内容。当我需要查找在特定时间添加的所有记录时,我可以搜索唯一ID的第一部分,因为知道在开始时具有相同3个字符的所有记录都是在相同时间周围添加的。 – Pete

+2

这是一个糟糕的数据库设计选择。你永远不应该有一个主键字段服务于多个目的,即你的主键不应该“意味”除了它唯一标识记录之外的任何东西。为什么不只是有一个单独的字段是一个适当的日期/时间字段? –

回答

0

也许你需要一个TIMESTAMP类型的列。

查找时间可以通过BETWEEN运算符和DATEADD函数在WHERE子句中完成。

WHERE TimeStampColumn BETWEEN 
DATEADD(ss, -1 * Interval, DesiredTime) AND 
DATEADD(ss,  Interval, DesiredTime) 
+0

在datetime列之间使用通常会导致错过记录。对于用户> =开始日期时间和<在结束日期时间之后更好 –