我正在插入表格,这工作正常。 但我想删除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',但仍无效。
这里似乎有什么问题?
感谢您的帮助!
编辑:
日期字段是[日期时间]非空,
我的查询返回:
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 :(得分:2)
我正在插入表格,这工作正常。但是我要 删除1999年之前的数据。
我不确定我是否正确理解这一点,但插入会向表中添加行。如果要删除行,请使用delete。
delete from Inventory_Table
where [Date] < '1999-01-01 00:00:00.000'
答案 1 :(得分:1)
如果此查询是选择要删除的行,则您的尖括号是错误的,应该小于,不大于。此外,WHERE
子句位于FROM
子句之后,如下所示:
select Transaction_No,
Item_no,
Item_description,
date,
Sales
from Inventory_Table
where [Date] < '1999-01-01 00:00:00.000'
答案 2 :(得分: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
您可以根据需要在上面的示例中调整粒度。它接受DAY
,HOUR
,MINUTE
,SECOND
等。