2016-08-03 18 views
0

einen Fehler vor ein paar Monaten Dadurch habe ich mich in einer Situation, wo ich eine Lösung für das folgende Problem zu finden haben:Get Datum von int (JJJJMMTT)

I Daten als integer speichere in einer gemeinsamen Format in meiner SQL Server-Datenbank (JJJJMMTT). Ich möchte meine Select-Anweisung haben, die mir den Integer in einem Format gibt, das für den Benutzer wie ein Datum aussieht (oder sogar in einem echten Datumstyp ist), so dass ich die empfangene Datentabelle direkt als Datenquelle für mein DataGridView verwenden kann.

  • Ich will nicht client Formatierung
  • Nennen wir die Tabelle myTable und integer/Datumsspalte myIntDate
  • myIntDate sein zu können NULL
  • Probe myIntDate-value: 20.160.803 für den 3. August 2016
+2

Markieren Sie die verwendeten dbms. (Viele der dbms-Produkte sind weit entfernt von ANSI SQL, wenn es um Datum/Uhrzeit geht.) – jarlh

+2

Haben Sie irgendetwas gegooglet? Dies ist online leicht verfügbar. Ich bin mir ziemlich sicher. – dfundako

+0

Es tut mir leid, vergaß das rein zu stellen! Ich benutze TSQL (Microsoft) @dfundako Ich habe, aber es ist ein bisschen schwer für mich, gute Keywords für die Suche zu finden. – Luke

Antwort

10
Select cast(cast(20160729 as varchar(10)) as date) 

Rückgabe 2016-07-29

+3

keine Notwendigkeit, es als 'VARCHAR (10)', 'VARCHAR (8)' zu tun – Lamak

+0

Das scheint ziemlich einfach. Ich bin fertig mit der Codierung, wenn Sie Recht haben! Ich werde sehen, wie es behandelt NULL Werte – Luke

+0

@ Luke es wird nur einen NULL-Wert zurückgeben. Wenn die Eingabe Null ist. Wenn Sie ein Standarddatum anstelle von null benötigen, wickeln Sie es in ein isnull ein. –