2017-05-26 117 views
-3

我有一個表,它的行保留在到和從日期格式。它從某一天保留到另一天。一旦預訂完成,就會生成票證編號。在C#中的往返日期計算#

現在我的要求是,我需要將任務分類爲活動和歷史。歷史必須是,ticketId的TO日期必須比昨天早。活躍的TO日期必須大於昨天,直到任何一天。

我該如何做到這一點?我很難解決這個問題。並從迄今保存在如下格式的SQL表:

From:2017-05-04  TO:2017-05-18 
+4

在[所以]你應該嘗試**自己寫代碼**。後** [做更多的研究](//meta.stackoverflow.com/questions/261592)**如果你有問題,你可以**發佈你已經嘗試**與清楚的解釋是什麼是'工作**並提供[** Minimal,Complete和Verifiable示例**](// stackoverflow.com/help/mcve)。我建議閱讀[問]一個好問題和[完美問題](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)。另外,一定要參加[遊覽]並閱讀[this](// meta.stackoverflow.com/questions/347937/)**。 –

+0

如果日期列實際上是日期類型,則它們不具有任何格式。他們是日期。當然你知道如何將日期與< and >進行比較? –

+0

提供示例記錄和代碼來更好地說明您的問題 – Snympi

回答

0

它會工作,我認爲...嘗試並恢復

Select (case when cast(convert(varchar(10),[ReserveToDate],101) as date)>cast(convert(varchar(10),dateadd(d,-1,getdate()),101) as date) then 'Active' else 'Historical' end) as Status,* from Table 

,如果你只想顯示則歷史ticketid

Select ticketid from Table where 
cast(convert(varchar(10),[ReserveToDate],101) as date)<=cast(convert(varchar(10),dateadd(d,-1,getdate()),101) as date) 
+0

錯誤的語法附近到 – user3660473

+0

現在嘗試....和評論 – Ravi

+2

絕對沒有理由將日期轉換爲字符串並返回日期。這隻會引入轉換問題*和*阻止服務器使用任何索引。如果有人想忽略時間元素,一個簡單的'cast(somefield as date)'將起作用而不會影響性能 –