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
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
La query seguente produrrà il formato dd/mm/yy
.
select LEFT(convert(varchar(10), @date, 103),6) + Right(Year(@date)+ 1,2)
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
La query seguente produrrà il formato gg-mmm-aa.
select
cast(DAY(getdate()) as varchar)+'-'+left(DATEname(m,getdate()),3)+'-'+
Right(Year(getdate()),2)
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