[英]How do I compare date from database and current date in ms access using C#?
[英]How do i compare the “EndDate” in my database to the current date of today?
我想根据EndDate是否是<今天的日期来执行查询。这是我到目前为止的内容,我需要知道如何比较它们。谢谢!
//Delete from DB Condition (EndDate) if (sqlCon.State == ConnectionState.Closed) sqlCon.Open(); SqlCommand sqlCmd = new SqlCommand("DeleteByDate", sqlCon); sqlCmd.CommandType = CommandType.StoredProcedure; sqlCmd.ExecuteNonQuery(); sqlCon.Close(); Clear();
这是存储过程。
ALTER PROC [dbo].[DeleteByDate] @AdvID int AS BEGIN UPDATE a SET a.Status = 0 FROM Advertisement a WHERE a.AdvID = @AdvID END
您可以像这样从C#或SQL处理它:
C#
if(EndDate < DateTime.Now.Date) // Assuming EndDate is already defined in your class
{
using(SqlConnection sqlCon = new SqlConnection(sqlCon.ConnectionString) )
using(SqlCommand sqlCmd = new SqlCommand("DeleteByDate", sqlCon))
{
sqlCon.Open();
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.Add("@AdvID", SqlDbType.Int);
sqlCmd.Parameters["@AdvID"].Value = AdvID //Assuming it's already defined;
sqlCmd.ExecuteNonQuery();
}
}
SQL:
ALTER PROC [dbo].[DeleteByDate]
@AdvID int
AS
BEGIN
DECLARE @CurrentDate DATE = GETDATE() -- to get current date
-- Assuming that Advertisement table has the column EndDate
IF EXISTS (SELECT * FROM Advertisement a WHERE a.EndDate < @CurrentDate )
BEGIN
UPDATE a SET a.Status = 0
FROM Advertisement a
WHERE a.AdvID = @AdvID
END
END
如果使用C#,它将直到满足条件时才触发sp,但是在SQL中,它将使C#触发sp,并且sp会在每次代码运行时检查条件。
因此,这取决于您的应用程序结构,首先是应用程序还是数据库,这是您要走的路。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.