2017-08-17 3 views
1

Ich habe eine Spalte in meiner Datenbank, die ich von Datetime zu dem Datum Datentyp mithilfe einer SQL Server-Funktion konvertieren muss. Ich kann nicht herausfinden, wie man die richtige Syntax bekommt. Könnte ich Hilfe bei der Syntax bekommen, damit IntelliSense aufhört, mich anzuschreien, und ich die Abfrage ausführen kann?Konvertieren von Datum zu Datum mit einer Funktion

CREATE FUNCTION fChangeDateFormat (@date01 date) 
RETURNS DATE 
AS 

RETURN(
SELECT 
    Convert(DateTime, OrderDate, 101) 
FROM 
    Orders 
WHERE 
    OrderDate = @date01 
) 
+0

'CONVERT' ist bereits eine Funktion, warum möchten Sie es in einem anderen einwickeln? Möchten Sie den Datentyp Ihrer Tabellenspalte dauerhaft ändern oder die Konvertierung zu Berichtszwecken durchführen? –

+0

Ich muss den Datentyp der Spalte permanent ändern. Was meinst du mit on-the-fly? – ShreddedSaber

+0

Sie müssen keine Funktion verwenden, um die Spalte zu ändern, ich würde einfach eine neue Spalte hinzufügen, dann eine UPDATE-Abfrage ausführen, um sie aufzufüllen, und dann die alte Spalte löschen. Scheint so, als ob du die Aufgabe zu kompliziert machst. –

Antwort

1

Sie als konvertieren können,

select CONVERT(date,@date01,101) as dd from Orders 

Wenn Sie mit SQL Server 2012 + FORMAT verwenden, 'd' ist das kurze Datumsformat zu erhalten.

SELECT FORMAT(@date01,'d','en-US') as dd from Orders 
Verwandte Themen