我有一個查詢,我需要獲取4列中的值,但只有當日期比第5列中的日期更大時。我已經嘗試了以下,但它似乎並沒有工作。只有當日期>今天時才獲取列值
Select
(case when clientplans.END_DATE < convert(date,getdate(,101) then '') else insplans.Desc_upper as PLAN NAME,
(case when clientplans.END_DATE < convert(date,getdate(,112) then '') else insplans.ID_NO,
(case when clientplans.END_DATE < convert(date,getdate(,112) then '') else insplans.cert_NO,
我已經轉換的結束日期的時間如下: 轉換(VARCHAR,clientplans.END_DATE,112),爲POLICY_EXP_DATE,
它的問題,我做結束日期的轉換後在查詢中? clientplans.end_date必須以特定順序插入結果中,該順序恰好在描述,id和證書編號之後。謝謝你的幫助。
完美的工作。我必須在結果中有'',因爲我的接口不會接受NULL。如果它超過今天,那隻剩下我不需要的到期日期。 – 2014-11-02 16:44:21
我嘗試使用相同的語句,但它不工作(clientplans.END_DATE>案件時(getdate()作爲日期)然後''轉換(varchar,clientplans.START_DATE,112)爲POLICY_EFF_DATE, – 2014-11-02 16:45:13
@RobertIngrim。。。在SQL Server中使用'varchar()'時應該總是有一個長度,但這可能不是問題,也許問題是'case'返回的字段長度,我總是試着把實際值放在第一位,在後面使用常量值,所以SQL Server肯定會選擇我真正想要的類型。 – 2014-11-02 16:51:09