次のインデックス付きビューを作成したいと思います。
CREATE VIEW [Cic].[vwMarker] WITH SCHEMABINDING
AS
Select
SubId,
marker.EquipmentID,
marker.ReadTime,
marker.CdsLotOpside,
marker.CdsLotBackside,
marker.CdteLotOpside,
marker.CdTeLotBackside
From dbo.Marker
Where dbo.Marker.ReadTime >= Convert(dateTime,'10/5/2011',120)
GO
CREATE UNIQUE CLUSTERED INDEX IX_vwMarker_ReadTime_EquipmentID
ON Cic.vwMarker (ReadTime, EquipmentID);
これは正常に機能します。ただし、私が本当にやりたいのは、ビューが照会されている現在の日時の時点で、2日以上前の行のみをこのビューに含めることです。これを行う方法が見つからないのは、Where述語でGetDate()を使用できないためです。これは、非決定論的であるためです。言い換えれば、私はこのようなことをしたいのですが、できません:
Where dbo.Marker.ReadTime >= Convert(dateTime,DateAdd(dd,-2,GetDate()) ,120)
これを回避する方法はありますか?