他の答えは確かに有効ですが、ここではUDFの形式であり、これはあなたが求めていたものに近いものです。
CREATE FUNCTION [dbo].[LeastDate] (@d1 datetime, @d2 datetime)
RETURNS datetime
AS
BEGIN
DECLARE @least datetime
IF @d1 is null or @d2 is null
SET @least = null
ELSE IF @d1 < @d2
SET @least = @d1
ELSE
SET @least = @d2
RETURN @least
END
使用法:
SELECT dbo.LeastDate(date1, date2) as theDate
FROM theTable
WHERE dbo.LeastDate(date1, date2) = '2012-09-24'
または、ネストされた選択を使用して、1回だけ実行できます。
SELECT * FROM (
SELECT dbo.LeastDate(date1, date2) as theDate FROM theTable
) t
WHERE theDate = '2012-09-24'
where句で関数を個別に呼び出すか、ネストされたselectを使用するかの選択は、これだけでなく、他のSQL関数の場合と同じであることに注意してください。