risposta-alla-domanda-sullo-sviluppo-web-bd.com

Come convertire il formato della data di sistema in gg/mm/aa in SQL Server 2008 R2?

Sto usando SQL Server 2008 R2. Voglio convertire la data di sistema in questo formato: dd/mm/yy

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

La 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 cambio solo in 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
5
   SELECT CONVERT(varchar(11),getdate(),101)  -- mm/dd/yyyy

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

Verificare questo . Presumo 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 OR condizione.

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

MODIFICARE:

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

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

14
Mudassir Hasan

La query seguente produrrà il formato dd/mm/yy.

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

Prova questo

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

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

Maggiori informazioni qui: https://msdn.Microsoft.com/en-us/library/ms187928.aspx

1

La query seguente produrrà il formato gg-mmm-aa.

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

usa semplicemente questo per gg/mm/aa e questo 

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

per mm/gg/aa

0
Palash