我有兩列的表的第一列是(的currentdate)時間戳,而另一個是(dateReturn)日期時間column.ii需要從days.is這個號碼得到的currentdate和dateReturn之間的差可能?時間戳和日期時間
Q
時間戳和日期時間
6
A
回答
9
不,這是不可能的。
與流行的觀點(和名稱本身)相反,timestamp
列實際上並不涉及時間。
免責聲明:這個答案是特定於SQL Server(按問題的標籤),其他數據庫引擎可能會在這裏有不同的實現。 *
相反,它是穩步增加一個64位數字。數字的值在具有此類時間戳列的單個數據庫中的所有表之間共享。換句話說,如果你有兩個這樣的表,修改一行,並修改另一行中的行,第一個表中的時間戳的值將是X,而第二個表中的值是X + 1。
as per the documentation of timestamp:
每個數據庫具有被遞增,其對包含在數據庫中的時間戳列的表中執行的每個插入或更新操作的計數器。該計數器是數據庫時間戳。這跟蹤數據庫中的相對時間,而不是可以與時鐘關聯的實際時間。
因此,該值與該行插入或上次修改的實際日期和/或時間無關,並且無法以任何方式轉換爲這樣的日期/時間。
一個timestamp
列的唯一目的就是有一些獨特的東西,這是保證在增加。由於該值爲64位,因此您可以訪問18 446 744 073 709 551 616
操作,在值重置之前需要使用timestamp
列。如果你有一個數據庫可以每秒處理一百萬次這樣的操作,那麼在值重置之前,你仍然需要等待大約584 554年,所以我認爲它符合唯一性要求。
4
在SQL Server timestamp數據類型不存儲日期或時間。它更多的是一個版本維護列,每更新一行就更新一次。所以,你應該重新考慮此列
-1
的數據類型,如果你的列有(比較少見)timestamp
型,拉塞五卡爾森的回答是正確的。
如果兩列有datetime
類型,您可以:
select datediff(day, dateReturn, currentdate)
from YourTable
相關問題
- 1. PHP日期和時間戳
- 2. 時間戳,日期,時間或日期時間是哪個?
- 3. 如何從日期時間戳的時間和日期在PHP
- 4. 如何從日期時間戳得到時間和日期
- 5. 分離的日期和時間的日期時間戳
- 6. 將日期和時間轉換爲日期+時間戳
- 7. mysql時間戳或日期時間
- 8. 從日期時間到時間戳python
- 9. Unix時間戳VS日期時間
- 10. 時間戳到長日期時間
- 11. 如何日期和時間轉換成日期時間/時間戳
- 12. 日期到Unix時間戳
- 13. 日期到時間戳nanos
- 14. Sqoop - 日期 - 時間戳
- 15. 按時間戳日期組
- 16. PHP日期時間戳
- 17. 將日期和時間轉換爲UNIX時代時間戳
- 18. 在JDBC中,何時使用時間,日期和時間戳
- 19. 將日期,日期時間轉換爲時間戳
- 20. PL SQL - 轉換時間戳的日期時間/日期
- 21. mysql日期和時間自動戳?
- 22. Unix時間戳和mysql日期:birthdate
- 23. PHP在日期和時間戳
- 24. 日期和時間戳單彈出
- 25. jq日期和unix時間戳
- 26. JDBC時間戳和日期GMT發出
- 27. Mysql時間戳和php日期()
- 28. 插入日期和時間戳,vbs
- 29. 從時間戳時區之間進行選擇(日期時間)
- 30. mysql日期時間時間戳時間差
大多數情況下,時間戳列表示類型爲「datetime」並且名稱爲「timestamp」的列。類型爲「timestmap」的列相對較少。 – Andomar
在這種情況下,他特別說一列是日期時間,另一列是時間戳。 –
換句話說,名字'currentdate',有點用詞不當。如果該字段應該保存最後一次修改(或初始插入)的日期和時間,那麼'timestamp'是錯誤的數據類型,並且日期時間列和觸發器或類似更合適。 –