diff --git a/lib/protocol/SqlString.js b/lib/protocol/SqlString.js index 98b3b3274..8e698e54e 100644 --- a/lib/protocol/SqlString.js +++ b/lib/protocol/SqlString.js @@ -86,13 +86,14 @@ SqlString.dateToString = function(date, timeZone) { } var year = dt.getFullYear(); - var month = zeroPad(dt.getMonth() + 1); - var day = zeroPad(dt.getDate()); - var hour = zeroPad(dt.getHours()); - var minute = zeroPad(dt.getMinutes()); - var second = zeroPad(dt.getSeconds()); - - return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second; + var month = zeroPad(dt.getMonth() + 1, 2); + var day = zeroPad(dt.getDate(), 2); + var hour = zeroPad(dt.getHours(), 2); + var minute = zeroPad(dt.getMinutes(), 2); + var second = zeroPad(dt.getSeconds(), 2); + var millisecond = zeroPad(dt.getMilliseconds(), 3); + + return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second + '.' + millisecond; }; SqlString.bufferToString = function(buffer) { @@ -124,8 +125,13 @@ SqlString.objectToValues = function(object, timeZone) { return values.join(', '); }; -function zeroPad(number) { - return (number < 10) ? '0' + number : number; +function zeroPad(number, length) { + number = number.toString(); + while (number.length < length) { + number = '0' + number; + } + + return number; } function convertTimezone(tz) { diff --git a/test/unit/protocol/test-SqlString.js b/test/unit/protocol/test-SqlString.js index 64423e528..c25445162 100644 --- a/test/unit/protocol/test-SqlString.js +++ b/test/unit/protocol/test-SqlString.js @@ -85,9 +85,9 @@ test('SqlString.escape', { assert.equal(SqlString.escape('Sup"er'), "'Sup\\\"er'"); }, - 'dates are converted to YYYY-MM-DD HH:II:SS': function() { - var expected = '2012-05-07 11:42:03'; - var date = new Date(Date.UTC(2012, 4, 7, 11, 42, 3)); + 'dates are converted to YYYY-MM-DD HH:II:SS.sss': function() { + var expected = '2012-05-07 11:42:03.002'; + var date = new Date(Date.UTC(2012, 4, 7, 11, 42, 3, 2)); var string = SqlString.escape(date); assert.strictEqual(string, "'" + expected + "'");