我在命令行上使用bq load
将CSV文件上传到Google BigQuery。它工作得很好,但我有一个关于即时转换时间戳的问题。
在我的源数据中,我的时间戳格式为YYYYMM
,例如201303
表示2013年3月。
但是,Google BigQuery的timestamp fields被记录为仅支持Unix时间戳和YYYY-MM-DD HH:MM:SS
格式字符串。不出所料,当我加载数据时,这些字段无法转换为正确的日期。
有什么方法可以告诉BigQuery这些是YYYYMM
字符串吗?
如果不是我可以在加载之前转换它们,但我有大约1TB的源数据,所以我很想在可能的情况下避免这种情况:)
答案 0 :(得分:5)
另一种方法是将此字段加载为STRING,并将其转换为BigQuery内部的TIMESTAMP,将数据复制到另一个表中(之后删除原始表),并执行以下转换:
{{1}}
答案 1 :(得分:1)
可以通过以下方式替代Mosha的答案:
SELECT DATE(CONCAT(your_ts_str, "01")) as ts