5

Utilizzo SQL Server 2008 R2. Voglio convertire la data di sistema in questo formato: dd/mm/yyCome convertire il formato della data di sistema in gg/mm/aa in SQL Server 2008 R2?

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

mia colonna contiene i dati:

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

quello che voglio: se il record ha 2013-01-01 00:00:00.000 in questo formato, allora solo io cambiare per Score Caculation - dd/mm/yy

Il mio codice è,

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 
+0

Come sei arrivato giorno '10' dai tempi di data è' 01' – Habib

risposta

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

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

Controllare questo. Suppongo che D30.SPGD30_TRACKED_ADJUSTMENT_X sia di tipo datetime.
Ecco perché sto usando la funzione CAST() per renderla un'espressione di carattere perché CHARINDEX() funziona sull'espressione di caratteri.
Inoltre, penso che non ci sia bisogno di condizioni 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 

EDIT:

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 

Vedere questo link per la conversione in altri formati di data: https://www.w3schools.com/sql/func_sqlserver_convert.asp

+0

voglio conver il nome di colonna "D30.SPGD30_TRACKED_ADJUSTMENT_X", dove posso mettere che –

+0

è 'D30.SPGD30_TRACKED_ADJUSTMENT_X' una colonna datetime? –

+0

non funziona ... cosa voglio se contiene "-", quindi cambio solo il formato della data in questo gg/mm/aa –

2

La query di seguito si tradurrà in formato dd/mm/yy.

select LEFT(convert(varchar(10), @date, 103),6) + Right(Year(@date)+ 1,2) 
0

La domanda sotto comporterà formato gg-mmm-yy.

select 
cast(DAY(getdate()) as varchar)+'-'+left(DATEname(m,getdate()),3)+'-'+ 
Right(Year(getdate()),2) 
0
select convert(varchar(8), getdate(), 3) 

semplicemente utilizzare questo per gg/mm/aa e questo

select convert(varchar(8), getdate(), 1) 

per mm/gg/aa

Problemi correlati