2014-11-24 28 views
0

我有一個客戶表(ID,姓名,日期)。在mssql中。我怎樣才能每天返回所有的ID?比如說我有一個輪詢器,並且我想將腳本插入到每天輪詢一次的輪詢器中。什麼腳本將返回今天創建的所有ID?如何返回每天所有的ID在MSSQL

回答

2

假設date是沒有時間組件,以獲得當前日期的記錄,最簡單的方法日期是:

select id 
from client 
where date = cast(getdate() as date); 

如果有一個時間分量,然後使用:

where date >= cast(getdate() as date) and date < cast(getdate() + 1 as date) 

注意,函數(cast())不在列,但上getdate()。這允許查詢優化器在date上使用索引(如果適用)。

0

使用DATEDIFF函數獲取數據庫的日期時間之差VS當前日期

SELECT ID FROM Client WHERE DATEDIFF(day, Date, GETDATE()) = 0; 
+0

感謝您的答覆,這將返回所有的ID的最後24小時(每天) – 2014-11-24 13:16:27

+0

@Andre庫切。它是正確的。不是嗎? – Veera 2014-11-24 13:18:17

+0

這是正確的,但效率低下,因爲謂詞不是[優化搜索](http://en.wikipedia.org/wiki/Sargable) – GarethD 2014-11-24 13:36:04

-2
SELECT id 
FROM CLIENT 
ORDER BY date DESC 
+2

不是預期的答案。返回的數據,對特定日期 – Veera 2014-11-24 13:15:43

+0

然後標記克林斯曼D的答...其正確的.. – 2014-11-24 13:18:33

+0

但查詢只是排序的ID。你正在比較錯誤的答案和錯誤的答案。 – Veera 2014-11-24 13:50:34