Das früheste Datum, das in einem SQL-Datetime-Feld gespeichert werden kann, hängt von dem Datentyp Sie verwenden:
datetime:
1753-01-01 through 9999-12-31
smalldatetime:
1900-01-01 through 2079-06-06
date, datetime2 and datetimeoffset:
0001-01-01 through 9999-12-31
siehe
Für genauere Details von https://msdn.microsoft.com/en-GB/library/ms186724.aspx#DateandTimeDataTypes
Die epoch nützlich ist, wenn Sie Zahlen Daten konvertieren, aber irrelevant, wenn Sie Termine als Termine werden zu speichern.
Wenn Sie nicht mit Nullen richtig umgehen wollen, ist die einfache Antwort, ein Datum auszuwählen, von dem Sie wissen, dass es vor Ihren Daten sein wird, und es in Ihre Anfrage fest einprogrammieren. cast('1900-01-01' as datetime)
wird in den meisten Fällen funktionieren.
Bei der Verwendung von etwas wie cast(0 as datetime)
erzeugt das gleiche Ergebnis es verdunkelt, was Sie in Ihrem Code getan haben. Jemand, der es beibehält und sich fragt, woher diese seltsamen alten Daten kommen, wird in der Lage sein, das fest codierte Datum schneller zu erkennen.
möglich duplicate von [Was ist äquivalent von php time() in mssql?] (Http://stackoverflow.com/questions/5942002/whats-the-äquivalent-of-php-time-in-mssql) – Corbin
Warten ... Meinst du Epoche wie in einer Epoche überhaupt, oder speziell in der Unix-Epoche? Auch das Maximum einer nicht existierenden Menge, die null ist, macht für mich Sinn. Warum magst du das Null-Ergebnis nicht? – Corbin
@Corbin: de ... Ich möchte diese Zeit als eine Bedingung verwenden. Wenn es also null ist, muss ich die where-Klausel ändern, die nicht mein Anspruch ist. Am Ende scheint eine Epoche Zeit perfekt für dieses Szenario, keine Änderungen müssen in where-Klausel sein. Habe ich mich selbst gereinigt? – freeman