datesformat in vorhandenen Tabellen-SQL-server umwandeln

Ich habe einen datetime Wert, der in Form von: '2015-03-15 00: 00: 00.000' ist. Wie kann ich es in einen datetime Wert in 'dd / MM / yyyy' Format umwandeln und es in einer SQL server 2012 database speichern?

Hier ist mein C # -Code:

SqlCommand cmd = new SqlCommand(); cmd.CommandText = "SELECT Convert(nvarchar(max), DATEDIFF(day, '" + sStartDate + "','" + sEndDate + "')+1)"; cmd.CommandType = CommandType.Text; 

 cmd.CommandText = "SELECT CONVERT(VARCHAR(10), DATEDIFF(day, '" + sStartDate + "','" + sEndDate + "')+1, 103)"; 

MSDN

Sie können ganz einfach den datatyp Ihrer Spalte von datetime zu char (24) / varchar (24) ändern. dann können Sie die folgende Methode verwenden, um das Format Ihres Wertes in ein gewünschtes Format zu ändern.

 SELECT RIGHT('0'+ CAST(DATEPART(DAY, '2015-03-15 00:00:00.000') AS VARCHAR(2)),2) + '/' + RIGHT('0'+CAST(DATEPART(MONTH, '2015-03-15 00:00:00.000') AS VARCHAR(2)),2) + '/' + CAST(DATEPART(YEAR, '2015-03-15 00:00:00.000') AS VARCHAR(4)); 

Codeanalyse:

Zuerst erwerben wir den DAY-Teil des dates mit der DATEPART-integrierten function. Da dieser Wert eine oder zwei character (s) Länge haben könnte, fügten wir eine konstante '0' zum ersten dieses Wertes hinzu und schneiden dann die letzten 2 character davon ab. So zum Beispiel, wenn der DAY gleich 24 ist, dann nach dem Hinzufügen eines '0' zu seinem Anfang würde es auf 024 geändert werden und dann schneiden wir die letzten beiden character, die 24 ist. Aber wenn der DAY gleich 9 ist, dann sind wir füge ein '0' hinzu. So jetzt haben wir 09, und beim Schneiden der letzten 2 character haben wir wieder 09. Dies kann das dd- und MM-Format garantieren.

Beachten Sie, dass, wenn Ihre Spalte in der database datetime oder datetime2 datatyp hat, dann müssen Sie dieses Problem auf eine andere Weise zu lösen.Lesen Sie mehr HIER

Wenn Sie datesinformationen in einer database speichern, sollten Sie den datatyp Ihrer database verwenden. Ein date ist ein date, nicht irgendein willkürliches Format. Auf diese Weise können Sie sich sicher auf all die schönen datesfunktionen verlassen, die in SQL server eingebaut sind und sparen Sie von einer ganzen class von Problemen.

Wenn Sie sich ständig das date in einen String für Berichtszwecke umwandeln, dann casting Sie die Konvertierungslogik in eine view / TVF und verwenden Sie dieses object als Ihre Berichtsquelle.

Wenn Ihr einziges Problem eine datetime als date anzeigt, dann können Sie verwenden:

 select Convert(nvarchar(10), SysDateTime(), 103) as [dd/mm/yyyy];