如何在SQL Server 2008 R2中将系统日期格式转换为dd/mm/yy?

Ada*_*lam 6 sql sql-server sql-server-2005 sql-server-2008 sql-server-2008-r2

我正在使用SQL Server 2008 R2.我想将系统日期转换为以下格式:dd/mm/yy

"2013-01-01 00:00:00.000" to "Score Calculation - 10/01/13".
Run Code Online (Sandbox Code Playgroud)

我的专栏包含以下数据:

1. DMS01A13010101
2. RMS01A13010201
3. 44
4. 2013-01-01 00:00:00.000
Run Code Online (Sandbox Code Playgroud)

我想要的是:如果记录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
Run Code Online (Sandbox Code Playgroud)

Mud*_*san 15

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

   SELECT CONVERT(varchar(11),getdate(),103)  -- dd/mm/yyyy
Run Code Online (Sandbox Code Playgroud)

检查一下.我假设D30.SPGD30_TRACKED_ADJUSTMENT_X是datetime数据类型.
这就是我使用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
Run Code Online (Sandbox Code Playgroud)

编辑:

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
Run Code Online (Sandbox Code Playgroud)

请参阅此链接以转换为其他日期格式:https://www.w3schools.com/sql/func_sqlserver_convert.asp