Click here to Skip to main content
15,889,281 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi all,

I'm having a little confuse here. I'm writing code in Node-RED for saving data into MSSQL. Other data successfully save except "TIME".

I set dt_Time in MSSQL with "time(7)" and when I make the default value to (GETDATE()) it will appear e.g. "13:52:06.0030000"

I have tried several things (REFER TO WHAT I HAVE TRIED) as searching from a web but still giving a same error.
Please find my script:-

JavaScript
//FUNCTION START HERE
function addZero(x,n) {
    while (x.toString().length < n) {
        if (n < 3){
        x = "0" + x;
        }else{
            x = x + "0";
        }
    }
    return x;
}
//DATE START HERE
var now = new Date();
var year    = now.getFullYear();
var month   = addZero(now.getMonth()+1,2); 
var day     = addZero(now.getDate(),2);
//TIME START HERE
var hour    = addZero(now.getHours(),2);
var minute  = addZero(now.getMinutes(),2);
var second  = addZero(now.getSeconds(),2);
var millisec  = addZero(now.getMilliseconds(),3); 

//THIS SECTION WILL SEND TO FLOW 1 : SQL SERVER
var curr_date = now.toLocaleDateString();
var curr_time =  + hour + ':' + minute + ':' + second + '.' + millisec ;

msg.query = "INSERT INTO  dbo.Testing (dt_Date,dt_Time) VALUES(" + curr_date + "," + curr_time + ")";


ADDITIONAL:-
Now I'm having another error when filtering to test saving data for date and time only
JavaScript
msg.query = "INSERT INTO  dbo.Testing (dt_Date,dt_Time) VALUES(" + curr_date + "," + curr_time + ")";


Error:
JavaScript
RequestError: Operand type clash: int is incompatible with date


What I have tried:

Approach 1:
var curr_time = + hour + ':' + minute + ':' + second + '.' + millisec ;

Approach 2:
var curr_time = + hour + ':' + minute + ':' + second + ':' + millisec ;

Approach 3:
var curr_time = + hour + ':' + minute + ':' + second ;

Approach 4:
var curr_time = + hour + ':' + minute + ':' + second + millisec ;

Approach 5:
var curr_time = now.toLocaleTimeString();
Posted
Updated 23-Mar-16 21:37pm
v2

1 solution

Sorry, I just found the way to do it.

I was weird why it be like that:-

JavaScript
msg.query = "INSERT INTO  dbo.Power ([dt_Date],[dt_Time]) VALUES('" + curr_date + "','" + curr_time + "')";
 
Share this answer
 
Comments
Patrice T 24-Mar-16 4:01am    
If answer is found:
Use Accept answer to close the question.
Luiey Ichigo 24-Mar-16 4:08am    
Ah..my bad. Thanks for remind me
Patrice T 24-Mar-16 4:09am    
No problem :)

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900