【发布时间】:2017-08-27 06:09:16
【问题描述】:
我的数据以 CSV 格式存储,格式为 2017-08-07,我的日期列在 BQ 中定义为字符串字段。当我尝试在 BigQuery 中导入我的所有数据时,所有日期数据都已转换为 Mon Aug 07 2017 00:00:00 GMT+0800 (HKT)。我想以 2017-08-07 格式导入所有日期范围,但它正在使用上述格式进行转换。下面是我的 CSV 脚本,用于在 BQ 中上传数据:
function test() {
var projectId = 'test1';
var datasetId = 'YoutubeNG';
var yestDate = new Date();
yestDate.setDate(yestDate.getDate()-2);
var formattedDate = Utilities.formatDate(yestDate, "GMT", "yyyy-MM-dd");
var tableId = 'Youtube_Keystats_NG';
var fileId = '1y4xTZ4g1c08D8NOU0O-SWsi-5uyi9ukOuKLD5yz03cY';
// Define our load job.
var jobSpec = {
configuration: {
load: {
destinationTable: {
projectId: projectId,
datasetId: datasetId,
tableId: tableId
},
allowJaggedRows: true,
writeDisposition: 'WRITE_TRUNCATE',
schema: {
fields: [{name:'Date', type: 'STRING',mode:'NULLABLE'},
{name:'Account_ID', type: 'INTEGER',mode:'NULLABLE'},
{name:'Account', type: 'STRING',mode:'NULLABLE'},
{name:'Campaign_ID', type: 'INTEGER',mode:'NULLABLE'},
{name:'Campaign_name', type: 'STRING',mode:'NULLABLE'},
{name:'Impressions', type: 'INTEGER',mode:'NULLABLE'},
{name:'Clicks', type: 'INTEGER',mode:'NULLABLE'},
{name:'Cost', type: 'FLOAT',mode:'NULLABLE'},
{name:'Conversions', type: 'FLOAT',mode:'NULLABLE'},
{name:'Value_per_conversion', type: 'FLOAT',mode:'NULLABLE'},
{name:'Total_conversion_value', type: 'FLOAT',mode:'NULLABLE'},
{name:'Average_position', type: 'FLOAT',mode:'NULLABLE'},
]
}
}
}
};
var spreadsheet = SpreadsheetApp.openById(fileId);
var filename = spreadsheet.getName();
var MAX_ROWS = 50000;
var sheet = spreadsheet.getSheetByName(tableId);
//var sheet = spreadsheet.getSheets()[0]; //.getSheetByName("Expenses")
var data = sheet.getDataRange().getValues();
var csvdata = "";
for (var row = 1; row < data.length && row < MAX_ROWS + 1; row++) {
for (var col = 0; col < data[row].length; col++) {
var cell = data[row][col].toString();
if (cell.indexOf(",") != -1) {
csvdata += "\"" + cell + "\"";
} else {
csvdata += cell;
}
if (col < data[row].length - 1) {
csvdata += ",";
}
}
csvdata += "\r\n";
}
var data = Utilities.newBlob(csvdata, "application/octet-stream");
// Execute the job.
BigQuery.Jobs.insert(jobSpec, projectId, data);
}
【问题讨论】:
-
您的意思是数据库中的日期是日期?这正是你想要的。现在您可以向数据库询问您想要的格式。 ( dd/mm/yyyy, yyyy-mm-dd ....)。不要以为你看到的就是数据库上的。
-
我的意思是我的 csv 中的日期格式是 2017-08-07 但是当使用上述代码上传到 Bigquery 时,它被转换为 Mon Aug 07 2017 00:00:00 GMT+0800 (HKT )。我想在 BigQuery 中显示日期日期为 2017-08-07 NOT Mon Aug 07 2017 00:00:00 GMT+0800 (HKT)
标签: python csv date google-apps-script google-bigquery