web-dev-qa-db-de.com

wie konvertiere ich das Datum in ein Format `mm/tt/jjjj`

Ich habe eine sql table mit Datumsspalte namens CREATED_TS, die die Daten in einem anderen Format enthält, z. Wie nachfolgend dargestellt

Feb 20 2012 12:00AM
11/29/12  8:20:53 PM          
Feb 20 2012 12:00AM
11/29/12  8:20:53 PM          
Feb 20 2012 12:00AM
11/29/12  8:20:53 PM          
Nov 16 2011 12:00AM
Feb 20 2012 12:00AM
11/29/12  8:20:52 PM

Jetzt möchte ich diese in das Format mm\dd\yyyy konvertieren, da ich die Daten in der WHERE-Klausel meiner SELECT-Abfrage vergleiche. 

Ich habe es versucht

CONVERT(VARCHAR(10),CREATED_TS,101)

aber bekam das Ergebnis als

Feb 20 201
11/29/12  
Feb 20 201
11/29/12  
Feb 20 201
11/29/12  
Nov 16 201
Feb 20 201
11/29/12  

Ich brauche das Ergebnis wie z. 02/20/2012 zum Vergleich.

Jede Hilfe wird geschätzt.

23
Rohaan

Da Ihre Daten bereits in varchar vorhanden sind, müssen Sie sie zuerst in Datum konvertieren:

select convert(varchar(10), cast(ts as date), 101) from <your table>
39
Roman Pekar

Verwenden Sie CONVERT mit dem Value-Spezifizierer von 101 und geben Sie Ihre Daten in date um:

CONVERT(VARCHAR(10), CAST(Created_TS AS DATE), 101)
22
mattytommo

Suchst du so etwas?

SELECT CASE WHEN LEFT(created_ts, 1) LIKE '[0-9]' 
            THEN CONVERT(VARCHAR(10), CONVERT(datetime, created_ts,   1), 101)
            ELSE CONVERT(VARCHAR(10), CONVERT(datetime, created_ts, 109), 101)
      END created_ts
  FROM table1

Ausgabe:

 | CREATED_TS | 
 | ------------ | 
 | 20.02.2012 | 
 | 29.11.2012 | 
 | 20.02.2012 | 
 | 29.11.2012 | 
 | 20.02.2012 | 
 | 29.11.2012 | 
 | 16.11.2011 | 
 | 20.02.2012 | 
 | 29.11.2012 | 

Hier ist SQLFiddle Demo

5
peterm

Benutzen:

select convert(nvarchar(10), CREATED_TS, 101)

oder

select format(cast(CREATED_TS as date), 'MM/dd/yyyy') -- MySQL 3.23 and above
0
Mohammad Anini