Google bigquery 自定义格式字符串的时间戳

Google bigquery 自定义格式字符串的时间戳,google-bigquery,Google Bigquery,我将把数据从BigQuery移动到Oracle数据库,并试图找到处理时间戳的最佳方法。Oracle DB只能导入日期为小写格式dd/mm/yyyy hh:mi:ss的csv文件,但默认情况下,BigQuery仅支持小写格式yyyy mm dd hh:mi:ss 选择 T 斯特林特 从…起 选择时间戳13245678910112T t排和s排 1 1974-03-1401:33:09 UTC 1974-03-1401:33:09.101112 当然,我可以提取时间戳的不同组件并手动将它们粘贴在一起

我将把数据从BigQuery移动到Oracle数据库,并试图找到处理时间戳的最佳方法。Oracle DB只能导入日期为小写格式dd/mm/yyyy hh:mi:ss的csv文件,但默认情况下,BigQuery仅支持小写格式yyyy mm dd hh:mi:ss

选择 T 斯特林特 从…起 选择时间戳13245678910112T t排和s排 1 1974-03-1401:33:09 UTC 1974-03-1401:33:09.101112 当然,我可以提取时间戳的不同组件并手动将它们粘贴在一起,如下文所示,或者编写一些巧妙的UDF,但是如果没有任何方法使用BigQuery的标准功能来实现这一点,我会感到惊讶。这似乎是一件很平常的事情,事实上,我已经犹豫了一段时间

选择 T 海螺 右concat0,STRINGDAYt,2,/, 右concat0,Stringmontt,2,/, RIGHTCONCAT000,STRINGYEARt,4, 蒂梅特 s 从…起 选择时间戳13245678910112T t排和s排 1 1974-03-14 01:33:09 UTC 14/03/1974 01:33:09
是否有类似Format、dd/mm/yyyy hh:mi:ss或使用regexps的方法?无需包含多个REGEXP\u提取。

这不是一个简单的函数,但它完成了这项工作

SELECT
  t,
  CONCAT( LPAD(STRING(DAY(t)),2,"0"),"/",LPAD(STRING(MONTH(t)),2,"0"),"/",STRING(YEAR(t))," ",TIME(t)) s
FROM (
  SELECT
    TIMESTAMP(132456789101112) t)
检查

还是以你为例

SELECT STRFTIME_UTC_USEC(TIMESTAMP(132456789101112), '%d/%m/%Y %H:%M:%S')

对于那些使用Bigquery标准SQL的人来说,正确的方法是使用

根据您的输入格式化时间戳或格式化日期

例:

选择格式\u时间戳“%Y/%m/%d”,时间戳“2017-11-01” 会回来的 2017/11/01

SELECT STRFTIME_UTC_USEC(TIMESTAMP(132456789101112), '%d/%m/%Y %H:%M:%S')