Mercurial > pub > bltoolkit
comparison UnitTests/Linq/DateTimeFunctions.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:f990fcb411a9 |
---|---|
1 using System; | |
2 using System.Linq; | |
3 | |
4 using NUnit.Framework; | |
5 | |
6 using BLToolkit.Data.DataProvider; | |
7 using BLToolkit.Data.Linq; | |
8 | |
9 namespace Data.Linq | |
10 { | |
11 [TestFixture] | |
12 public class DateTimeFunctions : TestBase | |
13 { | |
14 [Test] | |
15 public void GetDate() | |
16 { | |
17 ForEachProvider(db => | |
18 { | |
19 var q = from p in db.Person where p.ID == 1 select new { Now = Sql.AsSql(Sql.GetDate()) }; | |
20 Assert.AreEqual(DateTime.Now.Year, q.ToList().First().Now.Year); | |
21 }); | |
22 } | |
23 | |
24 [Test] | |
25 public void CurrentTimestamp() | |
26 { | |
27 ForEachProvider(db => | |
28 { | |
29 var q = from p in db.Person where p.ID == 1 select new { Now = Sql.CurrentTimestamp }; | |
30 Assert.AreEqual(DateTime.Now.Year, q.ToList().First().Now.Year); | |
31 }); | |
32 } | |
33 | |
34 [Test] | |
35 public void Now() | |
36 { | |
37 ForEachProvider(db => | |
38 { | |
39 var q = from p in db.Person where p.ID == 1 select new { DateTime.Now }; | |
40 Assert.AreEqual(DateTime.Now.Year, q.ToList().First().Now.Year); | |
41 }); | |
42 } | |
43 | |
44 [Test] | |
45 public void Parse1() | |
46 { | |
47 ForEachProvider(db => AreEqual( | |
48 from d in from t in Types select DateTime.Parse(Sql.ConvertTo<string>.From(t.DateTimeValue)) where d.Day > 0 select d.Date, | |
49 from d in from t in db.Types select DateTime.Parse(Sql.ConvertTo<string>.From(t.DateTimeValue)) where d.Day > 0 select d.Date)); | |
50 } | |
51 | |
52 [Test] | |
53 public void Parse2() | |
54 { | |
55 ForEachProvider(db => AreEqual( | |
56 from d in from t in Types select DateTime.Parse(t.DateTimeValue.Year + "-02-24 00:00:00") where d.Day > 0 select d, | |
57 from d in from t in db.Types select Sql.AsSql(DateTime.Parse(t.DateTimeValue.Year + "-02-24 00:00:00")) where d.Day > 0 select d)); | |
58 } | |
59 | |
60 #region DatePart | |
61 | |
62 [Test] | |
63 public void DatePartYear() | |
64 { | |
65 ForEachProvider(db => AreEqual( | |
66 from t in Types select Sql.DatePart(Sql.DateParts.Year, t.DateTimeValue), | |
67 from t in db.Types select Sql.AsSql(Sql.DatePart(Sql.DateParts.Year, t.DateTimeValue)))); | |
68 } | |
69 | |
70 [Test] | |
71 public void DatePartQuarter() | |
72 { | |
73 ForEachProvider(db => AreEqual( | |
74 from t in Types select Sql.DatePart(Sql.DateParts.Quarter, t.DateTimeValue), | |
75 from t in db.Types select Sql.AsSql(Sql.DatePart(Sql.DateParts.Quarter, t.DateTimeValue)))); | |
76 } | |
77 | |
78 [Test] | |
79 public void DatePartMonth() | |
80 { | |
81 ForEachProvider(db => AreEqual( | |
82 from t in Types select Sql.DatePart(Sql.DateParts.Month, t.DateTimeValue), | |
83 from t in db.Types select Sql.AsSql(Sql.DatePart(Sql.DateParts.Month, t.DateTimeValue)))); | |
84 } | |
85 | |
86 [Test] | |
87 public void DatePartDayOfYear() | |
88 { | |
89 ForEachProvider(db => AreEqual( | |
90 from t in Types select Sql.DatePart(Sql.DateParts.DayOfYear, t.DateTimeValue), | |
91 from t in db.Types select Sql.AsSql(Sql.DatePart(Sql.DateParts.DayOfYear, t.DateTimeValue)))); | |
92 } | |
93 | |
94 [Test] | |
95 public void DatePartDay() | |
96 { | |
97 ForEachProvider(db => AreEqual( | |
98 from t in Types select Sql.DatePart(Sql.DateParts.Day, t.DateTimeValue), | |
99 from t in db.Types select Sql.AsSql(Sql.DatePart(Sql.DateParts.Day, t.DateTimeValue)))); | |
100 } | |
101 | |
102 [Test] | |
103 public void DatePartWeek() | |
104 { | |
105 ForEachProvider(db => | |
106 (from t in db.Types select Sql.AsSql(Sql.DatePart(Sql.DateParts.Week, t.DateTimeValue))).ToList()); | |
107 } | |
108 | |
109 [Test] | |
110 public void DatePartWeekDay() | |
111 { | |
112 ForEachProvider(db => AreEqual( | |
113 from t in Types select Sql.DatePart(Sql.DateParts.WeekDay, t.DateTimeValue), | |
114 from t in db.Types select Sql.AsSql(Sql.DatePart(Sql.DateParts.WeekDay, t.DateTimeValue)))); | |
115 } | |
116 | |
117 [Test] | |
118 public void DatePartHour() | |
119 { | |
120 ForEachProvider(db => AreEqual( | |
121 from t in Types select Sql.DatePart(Sql.DateParts.Hour, t.DateTimeValue), | |
122 from t in db.Types select Sql.AsSql(Sql.DatePart(Sql.DateParts.Hour, t.DateTimeValue)))); | |
123 } | |
124 | |
125 [Test] | |
126 public void DatePartMinute() | |
127 { | |
128 ForEachProvider(db => AreEqual( | |
129 from t in Types select Sql.DatePart(Sql.DateParts.Minute, t.DateTimeValue), | |
130 from t in db.Types select Sql.AsSql(Sql.DatePart(Sql.DateParts.Minute, t.DateTimeValue)))); | |
131 } | |
132 | |
133 [Test] | |
134 public void DatePartSecond() | |
135 { | |
136 ForEachProvider(db => AreEqual( | |
137 from t in Types select Sql.DatePart(Sql.DateParts.Second, t.DateTimeValue), | |
138 from t in db.Types select Sql.AsSql(Sql.DatePart(Sql.DateParts.Second, t.DateTimeValue)))); | |
139 } | |
140 | |
141 [Test] | |
142 public void DatePartMillisecond() | |
143 { | |
144 ForEachProvider(new[] { ProviderName.Informix, ProviderName.MySql, ProviderName.Access }, db => AreEqual( | |
145 from t in Types select Sql.DatePart(Sql.DateParts.Millisecond, t.DateTimeValue), | |
146 from t in db.Types select Sql.AsSql(Sql.DatePart(Sql.DateParts.Millisecond, t.DateTimeValue)))); | |
147 } | |
148 | |
149 [Test] | |
150 public void Year() | |
151 { | |
152 ForEachProvider(db => AreEqual( | |
153 from t in Types select t.DateTimeValue.Year, | |
154 from t in db.Types select Sql.AsSql(t.DateTimeValue.Year))); | |
155 } | |
156 | |
157 [Test] | |
158 public void Month() | |
159 { | |
160 ForEachProvider(db => AreEqual( | |
161 from t in Types select t.DateTimeValue.Month, | |
162 from t in db.Types select Sql.AsSql(t.DateTimeValue.Month))); | |
163 } | |
164 | |
165 [Test] | |
166 public void DayOfYear() | |
167 { | |
168 ForEachProvider(db => AreEqual( | |
169 from t in Types select t.DateTimeValue.DayOfYear, | |
170 from t in db.Types select Sql.AsSql(t.DateTimeValue.DayOfYear))); | |
171 } | |
172 | |
173 [Test] | |
174 public void Day() | |
175 { | |
176 ForEachProvider(db => AreEqual( | |
177 from t in Types select t.DateTimeValue.Day, | |
178 from t in db.Types select Sql.AsSql(t.DateTimeValue.Day))); | |
179 } | |
180 | |
181 [Test] | |
182 public void DayOfWeek() | |
183 { | |
184 ForEachProvider(db => AreEqual( | |
185 from t in Types select t.DateTimeValue.DayOfWeek, | |
186 from t in db.Types select Sql.AsSql(t.DateTimeValue.DayOfWeek))); | |
187 } | |
188 | |
189 [Test] | |
190 public void Hour() | |
191 { | |
192 ForEachProvider(db => AreEqual( | |
193 from t in Types select t.DateTimeValue.Hour, | |
194 from t in db.Types select Sql.AsSql(t.DateTimeValue.Hour))); | |
195 } | |
196 | |
197 [Test] | |
198 public void Minute() | |
199 { | |
200 ForEachProvider(db => AreEqual( | |
201 from t in Types select t.DateTimeValue.Minute, | |
202 from t in db.Types select Sql.AsSql(t.DateTimeValue.Minute))); | |
203 } | |
204 | |
205 [Test] | |
206 public void Second() | |
207 { | |
208 ForEachProvider(db => AreEqual( | |
209 from t in Types select t.DateTimeValue.Second, | |
210 from t in db.Types select Sql.AsSql(t.DateTimeValue.Second))); | |
211 } | |
212 | |
213 [Test] | |
214 public void Millisecond() | |
215 { | |
216 ForEachProvider(new[] { ProviderName.Informix, ProviderName.MySql, ProviderName.Access }, db => AreEqual( | |
217 from t in Types select t.DateTimeValue.Millisecond, | |
218 from t in db.Types select Sql.AsSql(t.DateTimeValue.Millisecond))); | |
219 } | |
220 | |
221 [Test] | |
222 public void Date() | |
223 { | |
224 ForEachProvider(db => AreEqual( | |
225 from t in Types select Sql.AsSql(t.DateTimeValue.Date), | |
226 from t in db.Types select Sql.AsSql(t.DateTimeValue.Date))); | |
227 } | |
228 | |
229 static TimeSpan TruncMiliseconds(TimeSpan ts) | |
230 { | |
231 return new TimeSpan(ts.Hours, ts.Minutes, ts.Seconds); | |
232 } | |
233 | |
234 [Test] | |
235 public void TimeOfDay([DataContexts] string context) | |
236 { | |
237 using (var db = GetDataContext(context)) | |
238 { | |
239 AreEqual( | |
240 from t in Types select TruncMiliseconds(Sql.AsSql(t.DateTimeValue.TimeOfDay)), | |
241 from t in db.Types select TruncMiliseconds(Sql.AsSql(t.DateTimeValue.TimeOfDay))); | |
242 } | |
243 } | |
244 | |
245 #endregion | |
246 | |
247 #region DateAdd | |
248 | |
249 [Test] | |
250 public void DateAddYear() | |
251 { | |
252 ForEachProvider(db => AreEqual( | |
253 from t in Types select Sql.DateAdd(Sql.DateParts.Year, 1, t.DateTimeValue). Value.Date, | |
254 from t in db.Types select Sql.AsSql(Sql.DateAdd(Sql.DateParts.Year, 1, t.DateTimeValue)).Value.Date)); | |
255 } | |
256 | |
257 [Test] | |
258 public void DateAddQuarter() | |
259 { | |
260 ForEachProvider(db => AreEqual( | |
261 from t in Types select Sql.DateAdd(Sql.DateParts.Quarter, -1, t.DateTimeValue). Value.Date, | |
262 from t in db.Types select Sql.AsSql(Sql.DateAdd(Sql.DateParts.Quarter, -1, t.DateTimeValue)).Value.Date)); | |
263 } | |
264 | |
265 [Test] | |
266 public void DateAddMonth() | |
267 { | |
268 ForEachProvider(db => AreEqual( | |
269 from t in Types select Sql.DateAdd(Sql.DateParts.Month, 2, t.DateTimeValue). Value.Date, | |
270 from t in db.Types select Sql.AsSql(Sql.DateAdd(Sql.DateParts.Month, 2, t.DateTimeValue)).Value.Date)); | |
271 } | |
272 | |
273 [Test] | |
274 public void DateAddDayOfYear() | |
275 { | |
276 ForEachProvider(db => AreEqual( | |
277 from t in Types select Sql.DateAdd(Sql.DateParts.DayOfYear, 3, t.DateTimeValue). Value.Date, | |
278 from t in db.Types select Sql.AsSql(Sql.DateAdd(Sql.DateParts.DayOfYear, 3, t.DateTimeValue)).Value.Date)); | |
279 } | |
280 | |
281 [Test] | |
282 public void DateAddDay() | |
283 { | |
284 ForEachProvider(db => AreEqual( | |
285 from t in Types select Sql.DateAdd(Sql.DateParts.Day, 5, t.DateTimeValue). Value.Date, | |
286 from t in db.Types select Sql.AsSql(Sql.DateAdd(Sql.DateParts.Day, 5, t.DateTimeValue)).Value.Date)); | |
287 } | |
288 | |
289 [Test] | |
290 public void DateAddWeek() | |
291 { | |
292 ForEachProvider(db => AreEqual( | |
293 from t in Types select Sql.DateAdd(Sql.DateParts.Week, -1, t.DateTimeValue). Value.Date, | |
294 from t in db.Types select Sql.AsSql(Sql.DateAdd(Sql.DateParts.Week, -1, t.DateTimeValue)).Value.Date)); | |
295 } | |
296 | |
297 [Test] | |
298 public void DateAddWeekDay() | |
299 { | |
300 ForEachProvider(db => AreEqual( | |
301 from t in Types select Sql.DateAdd(Sql.DateParts.WeekDay, 1, t.DateTimeValue). Value.Date, | |
302 from t in db.Types select Sql.AsSql(Sql.DateAdd(Sql.DateParts.WeekDay, 1, t.DateTimeValue)).Value.Date)); | |
303 } | |
304 | |
305 [Test] | |
306 public void DateAddHour() | |
307 { | |
308 ForEachProvider(db => AreEqual( | |
309 from t in Types select Sql.DateAdd(Sql.DateParts.Hour, 1, t.DateTimeValue). Value.Hour, | |
310 from t in db.Types select Sql.AsSql(Sql.DateAdd(Sql.DateParts.Hour, 1, t.DateTimeValue)).Value.Hour)); | |
311 } | |
312 | |
313 [Test] | |
314 public void DateAddMinute() | |
315 { | |
316 ForEachProvider(db => AreEqual( | |
317 from t in Types select Sql.DateAdd(Sql.DateParts.Minute, 5, t.DateTimeValue). Value.Minute, | |
318 from t in db.Types select Sql.AsSql(Sql.DateAdd(Sql.DateParts.Minute, 5, t.DateTimeValue)).Value.Minute)); | |
319 } | |
320 | |
321 [Test] | |
322 public void DateAddSecond() | |
323 { | |
324 ForEachProvider(db => AreEqual( | |
325 from t in Types select Sql.DateAdd(Sql.DateParts.Second, 41, t.DateTimeValue). Value.Second, | |
326 from t in db.Types select Sql.AsSql(Sql.DateAdd(Sql.DateParts.Second, 41, t.DateTimeValue)).Value.Second)); | |
327 } | |
328 | |
329 [Test] | |
330 public void DateAddMillisecond() | |
331 { | |
332 ForEachProvider(new[] { ProviderName.Informix, ProviderName.MySql, ProviderName.Access }, | |
333 db => (from t in db.Types select Sql.AsSql(Sql.DateAdd(Sql.DateParts.Millisecond, 41, t.DateTimeValue))).ToList()); | |
334 } | |
335 | |
336 [Test] | |
337 public void AddYears() | |
338 { | |
339 ForEachProvider(db => AreEqual( | |
340 from t in Types select t.DateTimeValue.AddYears(1). Date, | |
341 from t in db.Types select Sql.AsSql(t.DateTimeValue.AddYears(1)).Date)); | |
342 } | |
343 | |
344 [Test] | |
345 public void AddMonths() | |
346 { | |
347 ForEachProvider(db => AreEqual( | |
348 from t in Types select t.DateTimeValue.AddMonths(-2). Date, | |
349 from t in db.Types select Sql.AsSql(t.DateTimeValue.AddMonths(-2)).Date)); | |
350 } | |
351 | |
352 [Test] | |
353 public void AddDays() | |
354 { | |
355 ForEachProvider(db => AreEqual( | |
356 from t in Types select t.DateTimeValue.AddDays(5). Date, | |
357 from t in db.Types select Sql.AsSql(t.DateTimeValue.AddDays(5)).Date)); | |
358 } | |
359 | |
360 [Test] | |
361 public void AddHours() | |
362 { | |
363 ForEachProvider(db => AreEqual( | |
364 from t in Types select t.DateTimeValue.AddHours(22). Hour, | |
365 from t in db.Types select Sql.AsSql(t.DateTimeValue.AddHours(22)).Hour)); | |
366 } | |
367 | |
368 [Test] | |
369 public void AddMinutes() | |
370 { | |
371 ForEachProvider(db => AreEqual( | |
372 from t in Types select t.DateTimeValue.AddMinutes(-8). Minute, | |
373 from t in db.Types select Sql.AsSql(t.DateTimeValue.AddMinutes(-8)).Minute)); | |
374 } | |
375 | |
376 [Test] | |
377 public void AddSeconds() | |
378 { | |
379 ForEachProvider(db => AreEqual( | |
380 from t in Types select t.DateTimeValue.AddSeconds(-35). Second, | |
381 from t in db.Types select Sql.AsSql(t.DateTimeValue.AddSeconds(-35)).Second)); | |
382 } | |
383 | |
384 [Test] | |
385 public void AddMilliseconds() | |
386 { | |
387 ForEachProvider(new[] { ProviderName.Informix, ProviderName.MySql, ProviderName.Access }, | |
388 db => (from t in db.Types select Sql.AsSql(t.DateTimeValue.AddMilliseconds(221))).ToList()); | |
389 } | |
390 | |
391 #endregion | |
392 | |
393 #region DateDiff | |
394 | |
395 [Test] | |
396 public void SubDateDay() | |
397 { | |
398 ForEachProvider( | |
399 new[] { ProviderName.Informix, "Oracle", "DevartOracle", ProviderName.PostgreSQL, ProviderName.MySql, ProviderName.SQLite, ProviderName.Access }, | |
400 db => AreEqual( | |
401 from t in Types select (int)(t.DateTimeValue.AddHours(100) - t.DateTimeValue).TotalDays, | |
402 from t in db.Types select (int)Sql.AsSql((t.DateTimeValue.AddHours(100) - t.DateTimeValue).TotalDays))); | |
403 } | |
404 | |
405 [Test] | |
406 public void DateDiffDay() | |
407 { | |
408 ForEachProvider( | |
409 new[] { ProviderName.Informix, "Oracle", "DevartOracle", ProviderName.PostgreSQL, ProviderName.MySql, ProviderName.SQLite, ProviderName.Access }, | |
410 db => AreEqual( | |
411 from t in Types select Sql.DateDiff(Sql.DateParts.Day, t.DateTimeValue, t.DateTimeValue.AddHours(100)), | |
412 from t in db.Types select Sql.AsSql(Sql.DateDiff(Sql.DateParts.Day, t.DateTimeValue, t.DateTimeValue.AddHours(100))))); | |
413 } | |
414 | |
415 [Test] | |
416 public void SubDateHour() | |
417 { | |
418 ForEachProvider( | |
419 new[] { ProviderName.Informix, "Oracle", "DevartOracle", ProviderName.PostgreSQL, ProviderName.MySql, ProviderName.SQLite, ProviderName.Access }, | |
420 db => AreEqual( | |
421 from t in Types select (int)(t.DateTimeValue.AddHours(100) - t.DateTimeValue).TotalHours, | |
422 from t in db.Types select (int)Sql.AsSql((t.DateTimeValue.AddHours(100) - t.DateTimeValue).TotalHours))); | |
423 } | |
424 | |
425 [Test] | |
426 public void DateDiffHour() | |
427 { | |
428 ForEachProvider( | |
429 new[] { ProviderName.Informix, "Oracle", "DevartOracle", ProviderName.PostgreSQL, ProviderName.MySql, ProviderName.SQLite, ProviderName.Access }, | |
430 db => AreEqual( | |
431 from t in Types select Sql.DateDiff(Sql.DateParts.Hour, t.DateTimeValue, t.DateTimeValue.AddHours(100)), | |
432 from t in db.Types select Sql.AsSql(Sql.DateDiff(Sql.DateParts.Hour, t.DateTimeValue, t.DateTimeValue.AddHours(100))))); | |
433 } | |
434 | |
435 [Test] | |
436 public void SubDateMinute() | |
437 { | |
438 ForEachProvider( | |
439 new[] { ProviderName.Informix, "Oracle", "DevartOracle", ProviderName.PostgreSQL, ProviderName.MySql, ProviderName.SQLite, ProviderName.Access }, | |
440 db => AreEqual( | |
441 from t in Types select (int)(t.DateTimeValue.AddMinutes(100) - t.DateTimeValue).TotalMinutes, | |
442 from t in db.Types select (int)Sql.AsSql((t.DateTimeValue.AddMinutes(100) - t.DateTimeValue).TotalMinutes))); | |
443 } | |
444 | |
445 [Test] | |
446 public void DateDiffMinute() | |
447 { | |
448 ForEachProvider( | |
449 new[] { ProviderName.Informix, "Oracle", "DevartOracle", ProviderName.PostgreSQL, ProviderName.MySql, ProviderName.SQLite, ProviderName.Access }, | |
450 db => AreEqual( | |
451 from t in Types select Sql.DateDiff(Sql.DateParts.Minute, t.DateTimeValue, t.DateTimeValue.AddMinutes(100)), | |
452 from t in db.Types select Sql.AsSql(Sql.DateDiff(Sql.DateParts.Minute, t.DateTimeValue, t.DateTimeValue.AddMinutes(100))))); | |
453 } | |
454 | |
455 [Test] | |
456 public void SubDateSecond() | |
457 { | |
458 ForEachProvider( | |
459 new[] { ProviderName.Informix, "Oracle", "DevartOracle", ProviderName.PostgreSQL, ProviderName.MySql, ProviderName.SQLite, ProviderName.Access }, | |
460 db => AreEqual( | |
461 from t in Types select (int)(t.DateTimeValue.AddMinutes(100) - t.DateTimeValue).TotalSeconds, | |
462 from t in db.Types select (int)Sql.AsSql((t.DateTimeValue.AddMinutes(100) - t.DateTimeValue).TotalSeconds))); | |
463 } | |
464 | |
465 [Test] | |
466 public void DateDiffSecond() | |
467 { | |
468 ForEachProvider( | |
469 new[] { ProviderName.Informix, "Oracle", "DevartOracle", ProviderName.PostgreSQL, ProviderName.MySql, ProviderName.SQLite, ProviderName.Access }, | |
470 db => AreEqual( | |
471 from t in Types select Sql.DateDiff(Sql.DateParts.Second, t.DateTimeValue, t.DateTimeValue.AddMinutes(100)), | |
472 from t in db.Types select Sql.AsSql(Sql.DateDiff(Sql.DateParts.Second, t.DateTimeValue, t.DateTimeValue.AddMinutes(100))))); | |
473 } | |
474 | |
475 [Test] | |
476 public void SubDateMillisecond() | |
477 { | |
478 ForEachProvider( | |
479 new[] { ProviderName.Informix, "Oracle", "DevartOracle", ProviderName.PostgreSQL, ProviderName.MySql, ProviderName.SQLite, ProviderName.Access }, | |
480 db => AreEqual( | |
481 from t in Types select (int)(t.DateTimeValue.AddSeconds(1) - t.DateTimeValue).TotalMilliseconds, | |
482 from t in db.Types select (int)Sql.AsSql((t.DateTimeValue.AddSeconds(1) - t.DateTimeValue).TotalMilliseconds))); | |
483 } | |
484 | |
485 [Test] | |
486 public void DateDiffMillisecond() | |
487 { | |
488 ForEachProvider( | |
489 new[] { ProviderName.Informix, "Oracle", "DevartOracle", ProviderName.PostgreSQL, ProviderName.MySql, ProviderName.SQLite, ProviderName.Access }, | |
490 db => AreEqual( | |
491 from t in Types select Sql.DateDiff(Sql.DateParts.Millisecond, t.DateTimeValue, t.DateTimeValue.AddSeconds(1)), | |
492 from t in db.Types select Sql.AsSql(Sql.DateDiff(Sql.DateParts.Millisecond, t.DateTimeValue, t.DateTimeValue.AddSeconds(1))))); | |
493 } | |
494 | |
495 #endregion | |
496 | |
497 #region MakeDateTime | |
498 | |
499 [Test] | |
500 public void MakeDateTime() | |
501 { | |
502 ForEachProvider(db => AreEqual( | |
503 from t in from p in Types select Sql.MakeDateTime(2010, p.ID, 1) where t.Value.Year == 2010 select t, | |
504 from t in from p in db.Types select Sql.MakeDateTime(2010, p.ID, 1) where t.Value.Year == 2010 select t)); | |
505 } | |
506 | |
507 [Test] | |
508 public void NewDateTime1() | |
509 { | |
510 ForEachProvider(db => AreEqual( | |
511 from t in from p in Types select new DateTime(p.DateTimeValue.Year, 10, 1) where t.Month == 10 select t, | |
512 from t in from p in db.Types select new DateTime(p.DateTimeValue.Year, 10, 1) where t.Month == 10 select t)); | |
513 } | |
514 | |
515 [Test] | |
516 public void NewDateTime2() | |
517 { | |
518 ForEachProvider(db => AreEqual( | |
519 from p in Types select new DateTime(p.DateTimeValue.Year, 10, 1), | |
520 from p in db.Types select new DateTime(p.DateTimeValue.Year, 10, 1))); | |
521 } | |
522 | |
523 [Test] | |
524 public void MakeDateTime2() | |
525 { | |
526 ForEachProvider(db => AreEqual( | |
527 from t in from p in Types select Sql.MakeDateTime(2010, p.ID, 1, 20, 35, 44) where t.Value.Year == 2010 select t, | |
528 from t in from p in db.Types select Sql.MakeDateTime(2010, p.ID, 1, 20, 35, 44) where t.Value.Year == 2010 select t)); | |
529 } | |
530 | |
531 [Test] | |
532 public void NewDateTime3() | |
533 { | |
534 ForEachProvider(db => AreEqual( | |
535 from t in from p in Types select new DateTime(p.DateTimeValue.Year, 10, 1, 20, 35, 44) where t.Month == 10 select t, | |
536 from t in from p in db.Types select new DateTime(p.DateTimeValue.Year, 10, 1, 20, 35, 44) where t.Month == 10 select t)); | |
537 } | |
538 | |
539 [Test] | |
540 public void NewDateTime4() | |
541 { | |
542 ForEachProvider(db => AreEqual( | |
543 from p in Types select new DateTime(p.DateTimeValue.Year, 10, 1, 20, 35, 44), | |
544 from p in db.Types select new DateTime(p.DateTimeValue.Year, 10, 1, 20, 35, 44))); | |
545 } | |
546 | |
547 [Test] | |
548 public void NewDateTime5() | |
549 { | |
550 ForEachProvider(db => AreEqual( | |
551 from t in from p in Types select new DateTime(p.DateTimeValue.Year + 1, 10, 1) where t.Month == 10 select t, | |
552 from t in from p in db.Types select new DateTime(p.DateTimeValue.Year + 1, 10, 1) where t.Month == 10 select t)); | |
553 } | |
554 | |
555 #endregion | |
556 | |
557 [Test] | |
558 public void GetDateTest1() | |
559 { | |
560 ForEachProvider( | |
561 new[] { ProviderName.PostgreSQL }, | |
562 db => | |
563 { | |
564 var dates = | |
565 from v in db.Parent | |
566 join s in db.Child on v.ParentID equals s.ParentID | |
567 where v.Value1 > 0 | |
568 select Sql.GetDate().Date; | |
569 | |
570 var countByDates = | |
571 from v in dates | |
572 group v by v into g | |
573 select new { g.Key, Count = g.Count() }; | |
574 | |
575 countByDates.Take(5).ToList(); | |
576 }); | |
577 } | |
578 | |
579 [Test] | |
580 public void GetDateTest2() | |
581 { | |
582 ForEachProvider( | |
583 //new[] { ProviderName.PostgreSQL }, | |
584 db => | |
585 { | |
586 var dates = | |
587 from v in db.Parent | |
588 join s in db.Child on v.ParentID equals s.ParentID | |
589 where v.Value1 > 0 | |
590 select Sql.CurrentTimestamp.Date; | |
591 | |
592 var countByDates = | |
593 from v in dates | |
594 group v by v into g | |
595 select new { g.Key, Count = g.Count() }; | |
596 | |
597 countByDates.Take(5).ToList(); | |
598 }); | |
599 } | |
600 } | |
601 } |