2017-06-03 10 views
0

私は私のSQLサーバのデータベースには、次の列を有することを経験テーブルを持っていますexp_enddateカラムで、現在はexp_workingカラムで作業しています。避けてデフォルトの日付(1900年1月)は

そして、私はこのような結果を示していますフロントエンドで:私の仕事は2015年5月に終了した場合

- 2015年6月に、私は現在、私は、この出力は、May 2015 - Currently Workingそして私たい

を働いていたときに問題が発生しましたこのクエリを通じてこの

May 2015 - Jan 1900Currently Working 

のような出力を得て「メートル: -

select right(convert(varchar(50), cast('exp_enddate' as date), 106), 8) 

このデフォルトの日付を避けるにはどうすればよいですか、または希望する出力を得る他の方法はありますか?

May 2015 - Currently Working 

答えて

0

終了日の空の文字列を処理している場合、SQL Serverはこれを1/1/1990として自動的に扱います。

あなたは、以下のクエリを実行することで、これを見ることができます:

SELECT CAST('' AS DATE) 

これは1900-01-01を返します。

SELECT 
    CASE 
     WHEN exp_enddate = '' 
     THEN 'Currently Working' 
     ELSE RIGHT(CONVERT(VARCHAR(50), CAST(exp_enddate AS DATE), 106), 8) 
    END 

このご用意形式で終了日を返します。いずれか、または:あなたは何ができるか

は終了日が空であるかどうかをチェックし、もしそうなら、それは、現在のように、作業を扱うです'今、働いている'。

関連する問題