@@ -16,12 +16,133 @@ namespace MySQLCLRFunctions
1616 public static class Compares
1717 {
1818 [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = false , IsPrecise = true ) ]
19- public static DateTime GreatestOf2DateTimes ( DateTime d1 , DateTime d2 )
19+ public static DateTime ? Max2DateTimes ( DateTime ? d1 , DateTime ? d2 )
2020 {
21- if ( d1 == null ) return d2 ;
22- if ( d2 == null ) return d1 ;
23- if ( d1 . CompareTo ( d2 ) >= 0 ) return d1 ;
24- return d2 ;
21+ DateTime ? [ ] itemlist = new [ ] { d1 , d2 } ;
22+ return itemlist . Max ( ) ;
23+ }
24+
25+ [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = false , IsPrecise = true ) ]
26+ public static DateTime ? Max3DateTimes ( DateTime ? d1 , DateTime ? d2 , DateTime ? d3 )
27+ {
28+ DateTime ? [ ] itemlist = new [ ] { d1 , d2 , d3 } ;
29+ return itemlist . Max ( ) ;
30+ }
31+
32+ [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = false , IsPrecise = true ) ]
33+ public static DateTime ? Max4DateTimes ( DateTime ? d1 , DateTime ? d2 , DateTime ? d3 , DateTime ? d4 )
34+ {
35+ DateTime ? [ ] itemlist = new [ ] { d1 , d2 , d3 , d4 } ;
36+ return itemlist . Max ( ) ;
37+ }
38+
39+ [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = true , IsPrecise = true ) ]
40+ public static int ? Max2Integers ( int ? d1 , int ? d2 )
41+ {
42+ int ? [ ] itemlist = new [ ] { d1 , d2 } ;
43+ return itemlist . Max ( ) ;
44+ }
45+
46+ [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = true , IsPrecise = true ) ]
47+ public static int ? Max3Integers ( int ? d1 , int ? d2 , int ? d3 )
48+ {
49+ int ? [ ] itemlist = new [ ] { d1 , d2 , d3 } ;
50+ return itemlist . Max ( ) ;
51+ }
52+
53+ [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = true , IsPrecise = true ) ]
54+ public static int ? Max4Integers ( int ? d1 , int ? d2 , int ? d3 , int ? d4 )
55+ {
56+ int ? [ ] itemlist = new [ ] { d1 , d2 , d3 , d4 } ;
57+ return itemlist . Max ( ) ;
58+ }
59+
60+ [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = true , IsPrecise = true ) ]
61+ public static Int64 ? Max2BigInts ( Int64 ? d1 , Int64 ? d2 )
62+ {
63+ Int64 ? [ ] itemlist = new [ ] { d1 , d2 } ;
64+ return itemlist . Max ( ) ;
65+ }
66+
67+ [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = true , IsPrecise = true ) ]
68+ public static Int64 ? Max3BigInts ( Int64 ? d1 , Int64 ? d2 , Int64 ? d3 )
69+ {
70+ Int64 ? [ ] itemlist = new [ ] { d1 , d2 , d3 } ;
71+ return itemlist . Max ( ) ;
72+ }
73+
74+ [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = true , IsPrecise = true ) ]
75+ public static Int64 ? Max4BigInts ( Int64 ? d1 , Int64 ? d2 , Int64 ? d3 , Int64 ? d4 )
76+ {
77+ Int64 ? [ ] itemlist = new [ ] { d1 , d2 , d3 , d4 } ;
78+ return itemlist . Max ( ) ;
79+ }
80+
81+ //**********************************************************************************************************************
82+ // Mins
83+ //**********************************************************************************************************************
84+
85+ [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = false , IsPrecise = true ) ]
86+ public static DateTime ? Min2DateTimes ( DateTime ? d1 , DateTime ? d2 )
87+ {
88+ DateTime ? [ ] itemlist = new [ ] { d1 , d2 } ;
89+ return itemlist . Min ( ) ;
90+ }
91+
92+ [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = false , IsPrecise = true ) ]
93+ public static DateTime ? Min3DateTimes ( DateTime ? d1 , DateTime ? d2 , DateTime ? d3 )
94+ {
95+ DateTime ? [ ] itemlist = new [ ] { d1 , d2 , d3 } ;
96+ return itemlist . Min ( ) ;
97+ }
98+
99+ [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = false , IsPrecise = true ) ]
100+ public static DateTime ? Min4DateTimes ( DateTime ? d1 , DateTime ? d2 , DateTime ? d3 , DateTime ? d4 )
101+ {
102+ DateTime ? [ ] itemlist = new [ ] { d1 , d2 , d3 , d4 } ;
103+ return itemlist . Min ( ) ;
104+ }
105+
106+ [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = true , IsPrecise = true ) ]
107+ public static int ? Min2Integers ( int ? d1 , int ? d2 )
108+ {
109+ int ? [ ] itemlist = new [ ] { d1 , d2 } ;
110+ return itemlist . Min ( ) ;
111+ }
112+
113+ [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = true , IsPrecise = true ) ]
114+ public static int ? Min3Integers ( int ? d1 , int ? d2 , int ? d3 )
115+ {
116+ int ? [ ] itemlist = new [ ] { d1 , d2 , d3 } ;
117+ return itemlist . Min ( ) ;
118+ }
119+
120+ [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = true , IsPrecise = true ) ]
121+ public static int ? Min4Integers ( int ? d1 , int ? d2 , int ? d3 , int ? d4 )
122+ {
123+ int ? [ ] itemlist = new [ ] { d1 , d2 , d3 , d4 } ;
124+ return itemlist . Min ( ) ;
125+ }
126+
127+ [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = true , IsPrecise = true ) ]
128+ public static Int64 ? Min2BigInts ( Int64 ? d1 , Int64 ? d2 )
129+ {
130+ Int64 ? [ ] itemlist = new [ ] { d1 , d2 } ;
131+ return itemlist . Min ( ) ;
132+ }
133+
134+ [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = true , IsPrecise = true ) ]
135+ public static Int64 ? Min3BigInts ( Int64 ? d1 , Int64 ? d2 , Int64 ? d3 )
136+ {
137+ Int64 ? [ ] itemlist = new [ ] { d1 , d2 , d3 } ;
138+ return itemlist . Min ( ) ;
139+ }
140+
141+ [ SqlFunction ( DataAccess = DataAccessKind . None , IsDeterministic = true , IsPrecise = true ) ]
142+ public static Int64 ? Min4BigInts ( Int64 ? d1 , Int64 ? d2 , Int64 ? d3 , Int64 ? d4 )
143+ {
144+ Int64 ? [ ] itemlist = new [ ] { d1 , d2 , d3 , d4 } ;
145+ return itemlist . Min ( ) ;
25146 }
26147 }
27148}
0 commit comments