2017-03-09 33 views
1

這是我的代碼:檢查如果給定的日期是在C#中的當前日期之前和MySQL

string query = "UPDATE tblschedule Set Status='" + "Complete" + "'Where Date <= '"+ DateTime.Now +"';"; 

這是工作,如果在SQL表的日期是超前一個月。例如:

Given Date: 4/9/2017 
Date Now: 3/9/2017 

而且狀態不會改變,因爲它不在當前日期之前。

但是,當它不是一個月前。例如:

Given Date: 3/20/2017 
Date Now: 3/9/2017 

即使狀態不在當前日期之前,狀態也會將其更改爲完成狀態。

+0

我可以知道'tblschedule'表Date'列'型。 –

+0

我把它設置爲varchar –

+0

所以試試我的答案。它會解決你的問題。 –

回答

1
string query = "UPDATE tblschedule Set Status='Complete' Where STR_TO_DATE(Date,'%m/%d/%Y') <= STR_TO_DATE('"+DateTime.Now+"','%m/%d/%Y')"; 

試試上面的代碼。希望這會有所幫助。

+0

@Frankgagui嘗試更新的答案。 –

1
string query = "UPDATE tblschedule Set Status='" + "Complete" + "'Where      
       CAST(Date AS DATETIME) <="'+DateTime.Now+"';"; 

需要注意的是,在CAST功能「日期」參數是列名

相關問題