Skip to content

Commit e06f9e8

Browse files
committed
Merge pull request #538 from chaoran/master
Add the milliseconds part when converting Date objects.
2 parents a188a4d + f52e99e commit e06f9e8

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

lib/protocol/SqlString.js

+15-9
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,14 @@ SqlString.dateToString = function(date, timeZone) {
8686
}
8787

8888
var year = dt.getFullYear();
89-
var month = zeroPad(dt.getMonth() + 1);
90-
var day = zeroPad(dt.getDate());
91-
var hour = zeroPad(dt.getHours());
92-
var minute = zeroPad(dt.getMinutes());
93-
var second = zeroPad(dt.getSeconds());
94-
95-
return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
89+
var month = zeroPad(dt.getMonth() + 1, 2);
90+
var day = zeroPad(dt.getDate(), 2);
91+
var hour = zeroPad(dt.getHours(), 2);
92+
var minute = zeroPad(dt.getMinutes(), 2);
93+
var second = zeroPad(dt.getSeconds(), 2);
94+
var millisecond = zeroPad(dt.getMilliseconds(), 3);
95+
96+
return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second + '.' + millisecond;
9697
};
9798

9899
SqlString.bufferToString = function(buffer) {
@@ -124,8 +125,13 @@ SqlString.objectToValues = function(object, timeZone) {
124125
return values.join(', ');
125126
};
126127

127-
function zeroPad(number) {
128-
return (number < 10) ? '0' + number : number;
128+
function zeroPad(number, length) {
129+
number = number.toString();
130+
while (number.length < length) {
131+
number = '0' + number;
132+
}
133+
134+
return number;
129135
}
130136

131137
function convertTimezone(tz) {

test/unit/protocol/test-SqlString.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,9 @@ test('SqlString.escape', {
8585
assert.equal(SqlString.escape('Sup"er'), "'Sup\\\"er'");
8686
},
8787

88-
'dates are converted to YYYY-MM-DD HH:II:SS': function() {
89-
var expected = '2012-05-07 11:42:03';
90-
var date = new Date(Date.UTC(2012, 4, 7, 11, 42, 3));
88+
'dates are converted to YYYY-MM-DD HH:II:SS.sss': function() {
89+
var expected = '2012-05-07 11:42:03.002';
90+
var date = new Date(Date.UTC(2012, 4, 7, 11, 42, 3, 2));
9191
var string = SqlString.escape(date);
9292

9393
assert.strictEqual(string, "'" + expected + "'");

0 commit comments

Comments
 (0)