未验证 提交 4d540a76 编写于 作者: S Stone Tao 提交者: GitHub

Merge pull request #623 from StoneT2000/master

Fixed bugs relating to timestamps
...@@ -17,7 +17,7 @@ function convertMillisecondsToDatetime(time) { ...@@ -17,7 +17,7 @@ function convertMillisecondsToDatetime(time) {
return new TaosObjects.TaosTimestamp(time); return new TaosObjects.TaosTimestamp(time);
} }
function convertMicrosecondsToDatetime(time) { function convertMicrosecondsToDatetime(time) {
return new TaosObjects.TaosTimestamp(time * 0.001); return new TaosObjects.TaosTimestamp(time * 0.001, true);
} }
function convertTimestamp(data, num_of_rows, nbytes = 0, offset = 0, micro=false) { function convertTimestamp(data, num_of_rows, nbytes = 0, offset = 0, micro=false) {
...@@ -33,9 +33,6 @@ function convertTimestamp(data, num_of_rows, nbytes = 0, offset = 0, micro=false ...@@ -33,9 +33,6 @@ function convertTimestamp(data, num_of_rows, nbytes = 0, offset = 0, micro=false
let time = 0; let time = 0;
for (let i = currOffset; i < currOffset + nbytes; i++) { for (let i = currOffset; i < currOffset + nbytes; i++) {
queue.push(data[i]); queue.push(data[i]);
if (data[i] == 0) {
break;
}
} }
for (let i = queue.length - 1; i >= 0; i--) { for (let i = queue.length - 1; i >= 0; i--) {
time += queue[i] * Math.pow(16, i * 2); time += queue[i] * Math.pow(16, i * 2);
......
...@@ -42,17 +42,38 @@ function TaosField(field) { ...@@ -42,17 +42,38 @@ function TaosField(field) {
* @param {Date} date - A Javascript date time object or the time in milliseconds past 1970-1-1 00:00:00.000 * @param {Date} date - A Javascript date time object or the time in milliseconds past 1970-1-1 00:00:00.000
*/ */
class TaosTimestamp extends Date { class TaosTimestamp extends Date {
constructor(date) { constructor(date, micro = false) {
super(date); super(date);
this._type = 'TaosTimestamp'; this._type = 'TaosTimestamp';
if (micro) {
this.microTime = date - Math.floor(date);
}
} }
/** /**
* @function Returns the date into a string usable by TDengine * @function Returns the date into a string usable by TDengine
* @return {string} A Taos Timestamp String * @return {string} A Taos Timestamp String
*/ */
toTaosString(){ toTaosString(){
let tsArr = this.toISOString().split("T") var tzo = -this.getTimezoneOffset(),
return tsArr[0] + " " + tsArr[1].substring(0, tsArr[1].length-1); dif = tzo >= 0 ? '+' : '-',
pad = function(num) {
var norm = Math.floor(Math.abs(num));
return (norm < 10 ? '0' : '') + norm;
},
pad2 = function(num) {
var norm = Math.floor(Math.abs(num));
if (norm < 10) return '00' + norm;
if (norm < 100) return '0' + norm;
if (norm < 1000) return norm;
};
return this.getFullYear() +
'-' + pad(this.getMonth() + 1) +
'-' + pad(this.getDate()) +
' ' + pad(this.getHours()) +
':' + pad(this.getMinutes()) +
':' + pad(this.getSeconds()) +
'.' + pad2(this.getMilliseconds()) +
'' + (this.microTime ? pad2(Math.round(this.microTime * 1000)) : '');
} }
} }
......
{ {
"name": "td-connector", "name": "td-connector",
"version": "1.3.2", "version": "1.5.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
......
{ {
"name": "td-connector", "name": "td-connector",
"version": "1.3.2", "version": "1.5.0",
"description": "A Node.js connector for TDengine.", "description": "A Node.js connector for TDengine.",
"main": "tdengine.js", "main": "tdengine.js",
"scripts": { "scripts": {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册