Wie konvertieren von int nach Datum in SQL Server 2008
Ich bin mit MS SQL Server 2008,
und in einer Tabelle habe ich die Spalte idate (Datum, aber im integer-format.
Aber in der Abfrage möchte ich, dass im date-format.
Ist es möglich, konvertieren integer Datum in der richtigen datetime-format?
- Wenn Sie sagen, dass Sie ein Datum im integer format, was meinst du genau - was ist das format?
- davey ist richtig.
DATEADD(DAY, 40835, '1900-01-01')
ist etwas schneller in tests, die ich laufen habe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht konvertieren von einem integer-Wert direkt in ein Datum, aber Sie können es zunächst in einen datetime-dann auf ein Datum geben
select cast(40835 as datetime)
konvertieren und dann auf ein Datum ist (SQL 2008)
select cast(cast(40835 as datetime) as date)
cheers
Müssen Sie zuerst konvertieren Sie es in einen datetime-Wert, dann nach Datum.
Versuchen Sie dies, es könnte hilfreich sein:
dann konvertieren in date.
Werden Sie wahrscheinlich wollen, untersuchen Sie die Dokumentation für die T-SQL-s CAST-und CONVERT - Funktionen, die sich in der Dokumentation hier: http://msdn.microsoft.com/en-US/library/ms187928(v=SQL.90).aspx
Werden Sie dann verwenden Sie eine dieser Funktionen in Ihrem T-SQL-Abfrage zum konvertieren der [idate] - Spalte aus der Datenbank in das datetime-format von Ihren wünschen in der Ausgabe.
Durch diese Lektüre hilft bei der Lösung ein ähnliches problem. Die Daten werden in decimal-Datentyp - [DOB] [decimal](8, 0) NICHT NULL - eg - 19700109. Ich möchte im Monat. Die Lösung ist die Kombination von SUBSTRING mit KONVERTIERT zu VARCHAR.
Wenn Ihr integer-Zeitstempel in Millisekunden verwenden:
Wird-format Millisekunden, um yyyy-mm-dd string.
strftime
(was ich glaube, ist eine SQLite-Funktion?)