annotate UnitTests/Linq/DateTimeFunctions.cs @ 4:f757da6161a1

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