是
SELECT [Id]
,[DateOnline] --Nullable
,[DateOffline] --Nullable
,[PageId]
,[DownloadId]
,[Weight]
FROM [DownloadPage]
WHERE GETDATE() BETWEEN [DateOnline] AND [DateOffline]
相当于:
SELECT [Id]
,[DateOnline] --Nullable
,[DateOffline] --Nullable
,[PageId]
,[DownloadId]
,[Weight]
FROM [DownloadPage]
WHERE ([DateOnline] IS NULL OR [DateOnline] <= GETDATE())
AND ([DateOffline] IS NULL OR [DateOffline] > GETDATE())
但同时也满足 NULL 的需求?
还是有更优雅的方法?
这里哪里需要括号?
谢谢。
编辑:
[DateOnline] 和 [DateOffline] 都是 DateTime 类型
如果 [DateOnline] 为 NULL,则逻辑为“现在在线”
如果 [DateOffline] 为 NULL,则逻辑是“永不脱机(一旦联机)”
抱歉,我一开始就应该在我的问题中包含这个。