140
rated 0 times
[
144]
[
4]
/ answers: 1 / hits: 38763
/ 9 Years ago, sun, august 16, 2015, 12:00:00
I get error message like below , when I create this table just like others set column timestamp timestamp without time zone NOT NULL
, but when I tried to insert 2015-08-16 18:51:05
to this table, then I get error, but other table is work, why and how to solve it?
CREATE TABLE IF NOT EXISTS UserForgetPasswordPending(
UserForgetPasswordPendingId SERIAL NOT NULL,
Email varchar(50) NOT NULL,
TokenTimestamp timestamp without time zone NOT NULL,
Token varchar(100) NOT NULL,
PRIMARY KEY (UserForgetPasswordPendingId)
);
ALTER TABLE UserForgetPasswordPending
OWNER TO db_admin;
error
[error: column TokenTimestamp is of type timestamp without time zone but expression is of type integer]
name: 'error',
length: 216,
severity: 'ERROR',
code: '42804',
detail: undefined,
hint: 'You will need to rewrite or cast the expression.',
insert
var utc = moment(new Date()).unix();
var tokenTimestamp = moment.unix(utc).format('YYYY-MM-DD HH:mm:ss');
var upsertUserForgetPasswordPending = function(userEmail, tokenTimestamp, token) {
return new Promise(function (fulfill, reject){
var queryInsert = 'INSERT INTO UserForgetPasswordPending (Email,TokenTimestamp,Token) SELECT $1,2,$3';
var queryUpsert = 'UPDATE UserForgetPasswordPending SET TokenTimestamp = $2, Token = $3 WHERE Email = $1';
var query = 'WITH upsert AS ('+queryUpsert+' RETURNING *) '+queryInsert+' WHERE NOT EXISTS (SELECT * FROM upsert)';
console.log(tokenTimestamp);
dbClient.query(query, [userEmail,tokenTimestamp,token], function(error, result) {
if (error) {
reject(error);
} else {
fulfill(result);
}
});
});
};
More From » sql