title: column is of type timestamp without time zone but expression is of type integer
body: <p>I get error message like below , when I create this table just like others set column timestamp <code>timestamp without time zone NOT NULL</code> , but when I tried to insert <code>2015-08-16 18:51:05</code> to this table,  then I get error, but other table is work, why and how to solve it?</p>
  
  <pre><code>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;
  </code></pre>
  
  <p>error </p>
  
  <pre><code>[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.',
  </code></pre>
  
  <p>insert </p>
  
  <pre><code>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);
        }
      });
    });
  };
  </code></pre>