2011-10-27 62 views
1

我正在做一個表插入,這是工作正常。 但我想刪除前也就是1999年過濾器日期不工作

這是我在查詢正在做數據:

SELECT Transaction_No, Item_no, Item_description, Date, Sales 
FROM Inventory_Table 
WHERE 
[Date] > '1999-01-01 00:00:00.000' 

但它一直在新表中顯示的數據之前。

我已經嘗試從日期中刪除'00:00:00.000',但仍然無法工作。

什麼似乎是這裏的問題?

感謝您的幫助!

編輯:

日期字段是[DATETIME]不爲空,

我查詢returnes:

Transaction_No  Item_No  Item_Description Date      Sales 
001     019238  Baseball   1900-01-01 00:00:00.000 100 
002     014952  Basketball   1900-01-01 00:00:00.000 250 
----------------------------------------------------------------------------------- 
254     012459  Gloves    2005-05-05 00:00:00.000 550 
255     014563  Pants    2005-05-05 00:00:00.000 250 

我想獲得1999年之前擺脫所有的數據。 這是本例中的交易001和002。

也曾嘗試不無幫助:

SELECT Transaction_No, Item_no, Item_description, Date, Sales 
FROM Inventory_Table 
WHERE 
Datepart(year,[Date]) > 1999 
+0

'[Date]'的數據類型是什麼?你能舉一個正在退回的先前日期的例子嗎?您的描述中還不清楚,如果您說**該查詢**正在返回之前的日期,或者只是您在表中插入的某些預先存在的數據不符合該標準? –

+0

數據類型是[日期時間,非空]。我會編輯我的問題,參見上文。 – AceAlfred

+0

您的查詢功能正常。你看到的行爲取決於你在問題中沒有提供的東西。試試這裏:http://data.stackexchange。com/stackoverflow/q/116001/ –

回答

2

我做一個插入表,這是工作的罰款。但我想 刪除1999年以前的數據。

不知道我正確理解這一點,但插入將行添加到表。如果你想刪除行,你應該使用delete

delete from Inventory_Table 
where [Date] < '1999-01-01 00:00:00.000' 
+0

感謝Mikael,一個簡單的刪除做了魅力。大聲笑 :) – AceAlfred

0

試試看鑄造日期:

WHERE [Date] > CAST('1999-01-01 00:00:00.000' AS DATETIME) 

如果仍然有問題,你可以嘗試使用DATEDIFF函數:

WHERE DATEDIFF(DAY, CAST('1999-01-01 00:00:00.000' AS DATETIME), [Date]) > 0 

您可以根據需要調整上述示例中的粒度。它接受DAYHOURMINUTESECOND

1

如果該查詢是選擇行刪除,您的尖括號是錯誤的,應該是小於,不大於。此外,WHERE條款那張FROM條款後,像這樣:

select Transaction_No, 
    Item_no, 
    Item_description, 
    date, 
    Sales 
from Inventory_Table 
where [Date] < '1999-01-01 00:00:00.000' 
+0

不,這不是我想要的 – AceAlfred