C# 在使用SQL Server的C Windows窗体应用程序中,在到期日前30天发出警报
我正在从事一个C Windows窗体项目,其中有一个窗体具有以下字段C# 在使用SQL Server的C Windows窗体应用程序中,在到期日前30天发出警报,c#,sql-server,C#,Sql Server,我正在从事一个C Windows窗体项目,其中有一个窗体具有以下字段 Item_ID, Item_Manufacture_Date, Item_Expiry_Date, Price 我正在将其保存到具有以下列的SQL Server表项中: CREATE TABLE [dbo].[Medicine] ( [Item_Code] [nvarchar](50) NULL, [Item_Manufacture_Date] [date] NULL, [Item_Expiry_Da
Item_ID, Item_Manufacture_Date, Item_Expiry_Date, Price
我正在将其保存到具有以下列的SQL Server表项中:
CREATE TABLE [dbo].[Medicine]
(
[Item_Code] [nvarchar](50) NULL,
[Item_Manufacture_Date] [date] NULL,
[Item_Expiry_Date] [date] NULL,
[Price] [nvarchar](50) NULL
) ON [PRIMARY]
它现在正在正确保存,我将分别在datagridview中显示所有这些内容,如下所示
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = " Select * from Medicine";
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();
我想在到期日前30天或前几天显示项目。通过与当前日期进行比较
例如,我想在2018年1月17日展示那些将于2018年2月17日或之前到期的项目。因为我尝试了这个查询,我知道这个查询是错误的,请纠正我,这样我就可以看到那些将在未来30天到期的项目
select
Item_Code, ExpiryDate
from
Medicine
where
Date <= GETDATE() - interval 30 day
请帮助,谢谢大家。您可以使用DATEADD
看起来像
SELECT Item_Code, ExpiryDate FROM Medicine WHERE ExpiryDate BETWEEN DATEADD(DAY,-30,GETDATE()) and GETDATE()
请尝试以下操作:var results=dt.AsEnumerable.Wherex=>x.FieldItem\u Expiray\u Date