5

Ich verwende SQL Server 2008 R2. Ich möchte das Systemdatum auf dieses Format konvertieren: dd/mm/yyWie konvertiert man das Systemdatumsformat in dd/mm/yy in SQL Server 2008 R2?

"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 will: wenn der Datensatz 2013-01-01 00:00:00.000 in diesem Format hat dann nur ich Score Caculation - dd/mm/yy ändern

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

Wie bist du Tag '10' seit dem ersten Tag Ihres Datums der ist '01' – Habib

Antwort

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

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

Überprüfen Sie dies. Ich nehme an, dass D30.SPGD30_TRACKED_ADJUSTMENT_X vom Datetime-Datentyp ist.
Deshalb verwende ich CAST() Funktion, um es als Zeichenausdruck zu machen, weil CHARINDEX() auf Zeichenausdruck funktioniert.
Auch ich denke, 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 

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 

Siehe diesen Link für die Umstellung auf andere Datumsformate: https://www.w3schools.com/sql/func_sqlserver_convert.asp

+0

ich will den Spaltennamen„D30.SPGD30_TRACKED_ADJUSTMENT_X“conver, wo ich die –

+0

I‚D30.SPGD30_TRACKED_ADJUSTMENT_X‘eine Datetime-Spalte setzen kann? –

+0

es funktioniert nicht .. was ich will, wenn "-" enthält, dann ändere ich nur das Datumsformat zu diesem TT/MM/JJ –

2

Die Abfrage unten in dd/mm/yy Format führen.

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

Die Abfrage unten in dd-mmm-yy Format führen.

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

einfach diese für TT/MM/JJ verwenden und diese

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

für mm/TT/JJ

Verwandte Themen