6

SQL Server 2008 R2 を使用しています。システム日付を次の形式に変換したい:dd/mm/yy

"2013-01-01 00:00:00.000" to "Score Calculation - 10/01/13".

私の列にはデータが含まれています:

1. DMS01A13010101
2. RMS01A13010201
3. 44
4. 2013-01-01 00:00:00.000

私が欲しいもの: レコードが2013-01-01 00:00:00.000この形式の場合、私だけが変更されますScore Caculation - dd/mm/yy

私のコードは、

select 
   case 
      when (CHARINDEX(D30.SPGD30_TRACKED_ADJUSTMENT_X, '-*') > 0 or 
            CHARINDEX(D30.SPGD30_TRACKED_ADJUSTMENT_X, '*-') > 0) 
      then 'Score Calculation - ' + CONVERT(VARCHAR(8), D30.SPGD30_TRACKED_ADJUSTMENT_X, 1) 
    end checkthedate 
from 
    CSPGD30_TRACKING D30
4

5 に答える 5

15
   SELECT CONVERT(varchar(11),getdate(),101)  -- mm/dd/yyyy

   SELECT CONVERT(varchar(11),getdate(),103)  -- dd/mm/yyyy

これをチェックして 。D30.SPGD30_TRACKED_ADJUSTMENT_X は datetime datatype であると想定しています。
そのCAST()ため、文字表現で機能するため、関数を使用して文字表現として作成していCHARINDEX()ます。
また、OR条件は必要ないと思います。

select case when CHARINDEX('-',cast(D30.SPGD30_TRACKED_ADJUSTMENT_X as varchar )) > 0 

then 'Score Calculation - '+CONVERT(VARCHAR(11), D30.SPGD30_TRACKED_ADJUSTMENT_X, 103)
end

編集:

select case when CHARINDEX('-',D30.SPGD30_TRACKED_ADJUSTMENT_X) > 0 
then 'Score Calculation - '+
CONVERT( VARCHAR(11), CAST(D30.SPGD30_TRACKED_ADJUSTMENT_X as DATETIME) , 103)
end

他の日付形式への変換については、次のリンクを参照してください: https://www.w3schools.com/sql/func_sqlserver_convert.asp

于 2013-02-22T05:13:50.510 に答える
2

以下のクエリはdd/mm/yyフォーマットになります。

select  LEFT(convert(varchar(10), @date, 103),6) + Right(Year(@date)+ 1,2)
于 2013-02-22T05:14:17.343 に答える
1

これを試して

SELECT CONVERT(varchar(11),getdate(),101) -- Converts to 'mm/dd/yyyy'

SELECT CONVERT(varchar(11),getdate(),103) -- Converts to 'dd/mm/yyyy'

詳細はこちら: https://msdn.microsoft.com/en-us/library/ms187928.aspx

于 2016-01-05T12:17:21.407 に答える