2013-09-26 85 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列之間使用通常會導致錯過記錄。對於用戶> =開始日期時間和<在結束日期時間之後更好 –