如何编写一个函数,使最新日期与SQL server
实施例。
Greatest(date1,date2,date3,date4,date5)
Greatest(date1,date2,date3)
答案 0 :(得分:0)
以下是使用Table valued constructor
SELECT *,
(SELECT Max(dates)
FROM (VALUES (date1),
(date2)) tc(dates)) as Max_date
FROM (SELECT '2015-01-01' AS date1,
'2016-01-01' AS date2) a
答案 1 :(得分:0)
使用样本查看此解决方案:
WITH Src AS
(
SELECT * FROM (VALUES
(GETDATE(), GETDATE()+1, GETDATE()-2),
(GETDATE()-3, GETDATE()+1, GETDATE()+4)
)T(Date1, Date2, Date3)
)
SELECT *
FROM Src
CROSS APPLY (SELECT MAX(D) FROM (VALUES (Date1), (Date2), (Date3)) T(D)) T(MaxDate)
将CROSS APPLY (SELECT MAX(D) FROM (VALUES (A), (B), ..., (Z)) T(D))
视为Greatest(A, B, ... Z)
。
答案 2 :(得分:0)
根据需要使用params创建一个函数。
MailMessage
使用。
CREATE FUNCTION Greatest
(
@Param1 DATETIME,
@Param2 DATETIME,
@Param3 DATETIME,
@Param4 DATETIME,
@Param5 DATETIME,
@Param6 DATETIME,
@Param7 DATETIME,
@Param8 DATETIME,
@Param9 DATETIME
)
RETURNS DATETIME
AS
BEGIN
DECLARE @MaxDate DATETIME
SELECT @MaxDate = MAX(dates)
FROM
(
VALUES (@Param1),
(@Param2),
(@Param3),
(@Param4),
(@Param5),
(@Param6),
(@Param7),
(@Param8),
(@Param9)
) t(dates)
RETURN @MaxDate
END
GO