Ich verwende SQL Server 2008 R2. Ich möchte das Systemdatum in dieses Format konvertieren: dd/mm/yy
"2013-01-01 00:00:00.000" to "Score Calculation - 10/01/13".
Meine Spalte enthält die Daten:
1. DMS01A13010101
2. RMS01A13010201
3. 44
4. 2013-01-01 00:00:00.000
Was ich möchte: Wenn der Datensatz 2013-01-01 00:00:00.000
in diesem Format hat, wechsle nur ich zu Score Caculation - dd/mm/yy
.
Mein Code ist,
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
Überprüfen Sie dies . Ich gehe davon aus, dass D30.SPGD30_TRACKED_ADJUSTMENT_X vom Datetime-Datentyp ist.
Deshalb benutze ich CAST()
function, um ihn als Zeichenausdruck zu machen, da CHARINDEX()
mit dem Zeichenausdruck arbeitet.
Ich denke auch, dass es keine Notwendigkeit für OR Bedingung gibt.
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
BEARBEITEN:
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
Siehe diesen Link für die Konvertierung in andere Datumsformate: https://www.w3schools.com/sql/func_sqlserver_convert.asp
Die folgende Abfrage führt zum dd/mm/yy
-Format.
select LEFT(convert(varchar(10), @date, 103),6) + Right(Year(@date)+ 1,2)
Versuche dies
SELECT CONVERT(varchar(11),getdate(),101) -- Converts to 'mm/dd/yyyy'
SELECT CONVERT(varchar(11),getdate(),103) -- Converts to 'dd/mm/yyyy'
Weitere Informationen finden Sie hier: https://msdn.Microsoft.com/de-de/library/ms187928.aspx
Die folgende Abfrage führt zum Format dd-mmm-yy.
select
cast(DAY(getdate()) as varchar)+'-'+left(DATEname(m,getdate()),3)+'-'+
Right(Year(getdate()),2)
select convert(varchar(8), getdate(), 3)
verwenden Sie dies einfach für TT/MM/JJ und das
select convert(varchar(8), getdate(), 1)
für mm/tt/jj