TL;DR: How would I convert the string "1.619820361123853E9"
to a Date
in JavaScript?
Long story:
The TIMESTAMP
values from BigQuery.Jobs.query()
in Google Apps Script come back as big numbers within a string. For example:
SELECT CURRENT_TIMESTAMP() AS today_timestamp
Running this in a Google Apps Script project (using code from https://developers.google.com/apps-script/advanced/bigquery as a guide) looks someting like this:
const request = {
query: "SELECT CURRENT_TIMESTAMP() AS today_timestamp",
useLegacySql: false
};
let queryResults = BigQuery.Jobs.query(request, DW_PROJECT_ID);
let jobId = queryResults.jobReference.jobId;
let sleepTimeMs = 500;
while (!queryResults.jobComplete) {
Logger.log(`Waiting for query: $jobId ($sleepTimeMs)`);
Utilities.sleep(sleepTimeMs);
sleepTimeMs *= 2;
queryResults = BigQuery.Jobs.getQueryResults(DW_PROJECT_ID, jobId);
}
let rows = queryResults.rows;
while (queryResults.pageToken) {
queryResults = BigQuery.Jobs.getQueryResults(DW_PROJECT_ID, jobId, {
pageToken: queryResults.pageToken
});
rows = rows.concat(queryResults.rows);
}
let data = new Array(rows.length);
for (let i = 0; i < rows.length; i++) {
let cols = rows[i].f;
data[i] = new Array(cols.length);
for (let j = 0; j < cols.length; j++) {
data[i][j] = cols[j].v;
}
}
Logger.log(`BQ to JavaScript TIMESTAMP: ${data[0][0]}`)
The result is that data[0][0]
is something like "1.619820361123853E9"
(a string).
How would I convert this to a Date
?