@@ -16,12 +16,133 @@ namespace MySQLCLRFunctions
16
16
public static class Compares
17
17
{
18
18
[ 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 )
20
20
{
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 ( ) ;
25
146
}
26
147
}
27
148
}
0 commit comments