Konvertiere von DateTime nach INT

7

In meinem SSIS-Paket muss ich Werte von DateTime in einen entsprechenden INTEGER-Wert konvertieren. Das folgende Beispiel wurde bereitgestellt.

Irgendwelche Ideen, wie ich diese umsetzen kann?

%Vor%     
Raj More 31.03.2011, 20:30
quelle

3 Antworten

12

EDIT: Casting zu einem Float / Int funktioniert nicht mehr in neueren Versionen von SQL Server. Verwenden Sie stattdessen Folgendes:

%Vor%

Beachten Sie, dass das Zeichenfolgedatum in einem eindeutigen Datumsformat sein sollte, damit es nicht von Ihrem Server beeinflusst wird regionale Einstellungen.

In älteren Versionen von SQL Server können Sie von einem DateTime-Wert in einen Integer-Wert konvertieren, indem Sie in einen Gleitkommawert und dann in einen int-Wert umwandeln:

%Vor%

(Hinweis: Sie können nicht direkt auf ein int-Objekt umwandeln, da MSSQL den Wert aufrundet, wenn Sie nach dem mittleren Tag sind!)

Wenn in Ihren Daten ein Offset vorhanden ist, können Sie dies natürlich dem Ergebnis hinzufügen oder davon abziehen

Sie können in die andere Richtung umwandeln, indem Sie direkt zurückwerfen:

%Vor%     
Steve Mayne 31.03.2011, 20:33
quelle
9
  

Wählen Sie DATEDIFF (dd, '12 / 30/1899 ', mydatefield)

    
Joel Coehoorn 31.03.2011 20:39
quelle
0

Oder, sobald es bereits in SSIS ist, könnten Sie eine abgeleitete Spalte (als Teil einer Datenflussaufgabe) mit folgendem erstellen:

%Vor%

Aber Sie müssten testen, um zu überprüfen.

    
Michael J Swart 01.04.2011 13:28
quelle