0

日付が今日の日付の場合は時間のみを表示し、それ以外の場合は date を表示する Web ポータルがあります。

dossier_date_created       |   Expected result
----------------------------------------------------
2013-10-22 16:18:46.610    |     2013-10-22
2013-10-23 11:26:56.390    |     11:26

私はこのようなことを試しました:

select 
case 
when CONVERT(date,dossier_date_created) = CONVERT(DATE,getdate()) then convert(char(5), dossier_date_created, 108) 
else convert(date, dossier_date_created) 
end as timedate
 from Proj_Manage_Dossier

しかし、結果は次のとおりです。

     timedate
    -----------
    2013-10-22
    1900-01-01

どうすればSQLだけでそれを行うことができますか? ところで、私の列「dossier_date_created」のデータ型はdatetime

4

3 に答える 3

1

これは私にとってはうまくいきます:

    select 
      case 
      when (CONVERT(date,PaymentDate) = CONVERT(DATE,getdate()))
       then convert(VARCHAR(15), PaymentDate, 108) 
      else convert(varchar, PaymentDate, 101) 
      end as timedate
    from Payments

それがあなたを助けることを願っています.. :)

于 2013-10-23T07:14:46.100 に答える
0

これはうまくいきます

select case when cast(dossier_date_created as date) = cast(getdate() as date) 
    then cast(cast(dossier_date_created as time) as varchar)
    else cast(cast(dossier_date_created as date) as varchar)
    end from #Proj_Manage_Dossier

それが役に立てば幸い :)

乾杯......

于 2013-10-23T09:22:16.667 に答える