Estoy tratando de guardar un registro en una base de datos MySQL usando Node.js. A continuación se muestra el código
const mysql = require('mysql2'); const errorCodes = require('source/error-codes'); const PropertiesReader = require('properties-reader'); const prop = PropertiesReader('properties.properties'); const con = mysql.createConnection({ host: prop.get('server.host'), user: prop.get("server.username"), password: prop.get("server.password"), port: prop.get("server.port"), database: prop.get("server.dbname") }); exports.createJobApplication = (event, context, callback) => { context.callbackWaitsForEmptyEventLoop = false; const sql = "INSERT INTO job_applications (idjob, iduser, cover_letter, applied_date) VALUES(?,?,?,?)"; con.query(sql, [jobApplication.idjob, jobApplication.iduser, jobApplication.cover_letter, 1636366620000], function(err, jobApplicationResult) { if (err) { console.log(err.toString()); con.rollback(function() { var response = errorCodes.save_failed; callback(null, response); }); } else {} } Desafortunadamente, no puedo guardar la fecha como se requiere. La fecha anterior 1636366620000 realmente representa 2021-11-08 10:17:00 pero en la base de datos MySQL lo que veo es 0000-00-00 00:00:00 .
El campo de applied_date en MySQL también es un campo de fecha y DateTime .
Además de los valores codificados que probé debajo de JSON, pero obtengo el mismo resultado
{ "job_application":{ "idjob":5, "iduser":112, "cover_letter":"ABCD EFGH IJK LMNOP QRST UV WXYZ", "applied_date":1636366620000 }, "milestones":[ { "title":"title", "start_date":1636366620000, "end_date":1636366620000, "cost":250.0, "is_deleted":false }, { "title":"title two", "start_date":1615544220000000, "end_date":1615544220000000, "cost":250.0, "is_deleted":false } ] }¿Cómo puedo solucionar este problema?
Encontré el problema. Olvidé envolver mi entero DateTime con new Date() . Así que técnicamente, así es como debería ser
const sql = "INSERT INTO job_applications (idjob, iduser, cover_letter, applied_date) VALUES(?,?,?,?)"; con.query(sql, [jobApplication.idjob, jobApplication.iduser, jobApplication.cover_letter, new Date(1636366620000)], function(err, jobApplicationResult)