ngày sớm nhất có thể được lưu trữ trong một lĩnh vực SQL datetime phụ thuộc vào loại dữ liệu bạn sử dụng:
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
Để biết thêm chi tiết chính xác, hãy xem từ https://msdn.microsoft.com/en-GB/library/ms186724.aspx#DateandTimeDataTypes
epoch là hữu ích nếu bạn đang chuyển đổi số thành ngày, nhưng không liên quan nếu bạn đang lưu trữ ngày tháng.
Nếu bạn không muốn đối phó với null đúng cách, câu trả lời đơn giản là chọn một ngày mà bạn biết sẽ có trước dữ liệu và mã hóa nó vào truy vấn của bạn. cast('1900-01-01' as datetime)
sẽ hoạt động trong hầu hết các trường hợp.
Trong khi sử dụng một cái gì đó như cast(0 as datetime)
tạo ra cùng một kết quả, nó che khuất những gì bạn đã thực hiện trong mã của mình. Một người nào đó duy trì nó, tự hỏi những ngày tháng cũ kỳ lạ này đến từ đâu, sẽ có thể phát hiện ra ngày được mã hóa cứng nhanh hơn.
Nguồn
2016-05-11 13:57:21
có thể trùng lặp của [Thời gian tương đương với thời gian php() trong mssql là gì?] (Http://stackoverflow.com/questions/5942002/whats-the-equivalent-of-php-time-in-mssql) – Corbin
Chờ ... Bạn có nghĩa là kỷ nguyên như trong một kỷ nguyên nói chung, hoặc đặc biệt là kỷ nguyên unix? Ngoài ra, tối đa của một tập không tồn tại được null có ý nghĩa với tôi. Tại sao bạn không thích kết quả null? – Corbin
@Corbin: vi ... Tôi muốn sử dụng thời gian này như là một điều kiện nơi. vì vậy, nếu nó là null, tôi cần phải thay đổi nơi khoản mà không phải là giả định của tôi. Cuối cùng, thời gian epoch có vẻ hoàn hảo cho kịch bản này, không có thay đổi nào cần phải ở trong mệnh đề where. Tôi có tự xóa mình không? \ – freeman