5
5
using NUnit . Framework ;
6
6
using ServiceStack . DataAnnotations ;
7
7
using ServiceStack . Model ;
8
+ using ServiceStack . OrmLite . Legacy ;
9
+ using ServiceStack . OrmLite . MySql . Converters ;
10
+ using ServiceStack . Text ;
8
11
9
12
namespace ServiceStack . OrmLite . MySql . Tests
10
13
{
@@ -15,52 +18,80 @@ public class DateTimeColumnTest
15
18
[ Test ]
16
19
public void Can_create_table_containing_DateTime_column ( )
17
20
{
18
- using ( var db = OpenDbConnection ( ) )
19
- {
20
- db . CreateTable < Analyze > ( true ) ;
21
- }
21
+ using var db = OpenDbConnection ( ) ;
22
+ db . CreateTable < Analyze > ( true ) ;
22
23
}
23
24
24
25
[ Test ]
25
26
public void Can_store_DateTime_Value ( )
26
27
{
27
- using ( var db = OpenDbConnection ( ) )
28
- {
29
- db . CreateTable < Analyze > ( true ) ;
28
+ using var db = OpenDbConnection ( ) ;
29
+ db . CreateTable < Analyze > ( true ) ;
30
30
31
- var obj = new Analyze {
32
- Id = 1 ,
33
- Date = DateTime . Now ,
34
- Url = "http://www.google.com"
35
- } ;
31
+ var obj = new Analyze {
32
+ Id = 1 ,
33
+ Date = DateTime . Now ,
34
+ Url = "http://www.google.com"
35
+ } ;
36
36
37
- db . Save ( obj ) ;
38
- }
37
+ db . Save ( obj ) ;
39
38
}
40
39
41
40
[ Test ]
42
41
public void Can_store_and_retrieve_DateTime_Value ( )
43
42
{
44
- using ( var db = OpenDbConnection ( ) )
45
- {
46
- db . CreateTable < Analyze > ( true ) ;
43
+ using var db = OpenDbConnection ( ) ;
44
+ db . CreateTable < Analyze > ( true ) ;
45
+
46
+ var obj = new Analyze {
47
+ Id = 1 ,
48
+ Date = DateTime . Now ,
49
+ Url = "http://www.google.com"
50
+ } ;
47
51
48
- var obj = new Analyze {
49
- Id = 1 ,
50
- Date = DateTime . Now ,
51
- Url = "http://www.google.com"
52
- } ;
52
+ db . Save ( obj ) ;
53
53
54
- db . Save ( obj ) ;
54
+ var id = ( int ) db . LastInsertId ( ) ;
55
+ var target = db . SingleById < Analyze > ( id ) ;
55
56
56
- var id = ( int ) db . LastInsertId ( ) ;
57
- var target = db . SingleById < Analyze > ( id ) ;
57
+ Assert . That ( target , Is . Not . Null ) ;
58
+ Assert . That ( target . Id , Is . EqualTo ( id ) ) ;
59
+ Assert . That ( target . Date , Is . EqualTo ( obj . Date ) . Within ( TimeSpan . FromSeconds ( 1 ) ) ) ;
60
+ Assert . That ( target . Url , Is . EqualTo ( obj . Url ) ) ;
61
+ }
58
62
59
- Assert . That ( target , Is . Not . Null ) ;
60
- Assert . That ( target . Id , Is . EqualTo ( id ) ) ;
61
- Assert . That ( target . Date , Is . EqualTo ( obj . Date ) . Within ( TimeSpan . FromSeconds ( 1 ) ) ) ;
62
- Assert . That ( target . Url , Is . EqualTo ( obj . Url ) ) ;
63
+ [ Test ]
64
+ public void Can_change_DateTime_precision ( )
65
+ {
66
+ using var db = OpenDbConnection ( ) ;
67
+ if ( MySqlDialect . Provider . GetConverter ( typeof ( DateTime ) ) is MySqlDateTimeConverterBase dateConverter )
68
+ {
69
+ dateConverter . Precision = 3 ;
63
70
}
71
+
72
+ OrmLiteUtils . PrintSql ( ) ;
73
+ db . CreateTable < Analyze > ( true ) ;
74
+
75
+ var obj = new Analyze {
76
+ Id = 1 ,
77
+ Date = DateTime . Now ,
78
+ Url = "http://www.google.com"
79
+ } ;
80
+
81
+ db . Save ( obj ) ;
82
+
83
+ var id = ( int ) db . LastInsertId ( ) ;
84
+ var target = db . SingleById < Analyze > ( id ) ;
85
+ target . PrintDump ( ) ;
86
+
87
+ var q = db . From < Analyze > ( )
88
+ . Where ( x => x . Date >= DateTime . Now . Date ) ;
89
+ var results = db . Select ( q ) ;
90
+ Assert . That ( results . Count , Is . EqualTo ( 1 ) ) ;
91
+ results . PrintDump ( ) ;
92
+
93
+ results = db . SelectFmt < Analyze > ( "AnalyzeDate >= {0}" , DateTime . Now . AddDays ( - 1 ) ) ;
94
+ results . PrintDump ( ) ;
64
95
}
65
96
66
97
/// <summary>
0 commit comments