@@ -7,12 +7,14 @@ common.useTestDb(connection);
7
7
var table = 'timezone_test' ;
8
8
connection . query ( [
9
9
'CREATE TEMPORARY TABLE `' + table + '`(' ,
10
- '`offset` float ,' ,
10
+ '`offset` varchar(10) ,' ,
11
11
'`dt` datetime' ,
12
12
') ENGINE=InnoDB DEFAULT CHARSET=utf8'
13
13
] . join ( '\n' ) ) ;
14
14
15
- var tests = [ 0 , 1 , 5 , 12 , 26 , - 1 , - 5 , - 20 , 'Z' , 'local' , undefined ] ;
15
+ var tests = [ 0 , 1 , 5 , 12 , 26 , - 1 , - 5 , - 20 , 'Z' , 'local' ] ;
16
+
17
+ connection . query ( 'DELETE FROM ' + table ) ;
16
18
17
19
testNextDate ( ) ;
18
20
@@ -31,22 +33,21 @@ function testNextDate() {
31
33
function testDate ( offset , cb ) {
32
34
var dt = new Date ( ) ;
33
35
34
- if ( offset == 'Z' || offset == 'local' || ! offset ) {
36
+ if ( offset == 'Z' || offset == 'local' ) {
35
37
connection . _timezone = offset ;
36
38
} else {
37
39
connection . _timezone = ( offset < 0 ? "-" : "+" ) + pad2 ( Math . abs ( offset ) ) + ":00" ;
38
40
}
39
41
connection . query ( 'INSERT INTO ' + table + ' SET ?' , { offset : offset , dt : dt } ) ;
40
42
41
43
if ( offset == 'Z' ) {
42
- dt . setTime ( dt . getTime ( ) - ( dt . getTimezoneOffset ( ) * 60000 ) ) ;
43
- } else if ( offset != 'local' && offset ) {
44
- dt . setTime ( dt . getTime ( ) - ( dt . getTimezoneOffset ( ) * 60000 ) + ( offset * 3600000 ) ) ;
44
+ dt . setTime ( dt . getTime ( ) + ( dt . getTimezoneOffset ( ) * 60000 ) ) ;
45
+ } else if ( offset != 'local' ) {
46
+ dt . setTime ( dt . getTime ( ) + ( dt . getTimezoneOffset ( ) * 60000 ) + ( offset * 3600000 ) ) ;
45
47
}
46
48
47
49
connection . query ( {
48
- sql : 'SELECT * FROM ' + table + ' WHERE offset ' + ( offset === undefined ? 'IS NULL' : '= ?' ) ,
49
- values : [ offset ] ,
50
+ sql : 'SELECT * FROM ' + table + ' WHERE offset = \'' + offset + '\'' ,
50
51
typeCast : function ( field , parser , timeZone , next ) {
51
52
if ( field . type != 12 ) return next ( ) ;
52
53
0 commit comments