BigQuery:格式化 ISO 日期

如何解决BigQuery:格式化 ISO 日期

我正在尝试解析 ISO 日期 8601 格式的时间戳。

示例:batch1.bat F:\_FFMPEG_\bin\01.gif timeout /T 25 move F:\_FFMPEG_\bin\_*.gif F:\_FFMPEG_\bin\_FILES_\ batch1.bat F:\_FFMPEG_\bin\02.gif timeout /T 25 move F:\_FFMPEG_\bin\_*.gif F:\_FFMPEG_\bin\_FILES_\ batch1.bat F:\_FFMPEG_\bin\03.gif timeout /T 25 move F:\_FFMPEG_\bin\_*.gif F:\_FFMPEG_\bin\_FILES_\

此信息存储在 JSON 对象中,因此我将该数据提取为字符串:

我正在寻找的格式是 yy-MM-dd hh:mm 格式,为此我尝试了以下内容

sql 代码

2021-04-10T14:11:00Z

错误

上面的代码导致以下错误

无法解析输入字符串'"2021-04-10T03:17:00Z"

原因是日期中间的T,我相信,

为了放弃我尝试了这个改变:

SELECT document_id,json_extract(data,'$.Pair') as pair,PARSE_TIMESTAMP('%y-%m-%d %H:%M','$.AlertTime')) as alerttime,COUNT(document_id) as alert_count
FROM `Tradingview-alerts-26eb8.alltables.TradingView_000_raw_latest` as alert_view
GROUP BY alerttime,document_id,pair

但是我在另一行遇到错误

无法解析输入字符串'"2021-04-1'

我想知道是不是因为日期的显示方式(年-月-日)没有 2 位数字?例如 2021-04-01 而不是 2021-04-1。

但是如果我尝试使用

SUBSTR(json_extract(data,'$.AlertTime'),1,10))

我得到的错误

无法解析输入字符串'"2021-04-10'

解决方法

您需要将这些 ISO 符号作为常量包含在格式说明符中:

select parse_timestamp('%FT%TZ','2021-04-12T17:38:10Z')

|           f0_           |
---------------------------
| 2021-04-12 17:38:10 UTC |

UPD:如果您有小数秒,您可以包含可选的毫秒元素 %E*S 而不是时间元素 %T。对于非 UTC 时间戳,还应该有时区元素:%Ez。因此,可能的解决方案可能是:

with a as (
    select '2021-04-12T20:44:06.95841Z' as ts_str union all
    select '2021-04-12T23:44:07.83738+03:00' union all
    select '2021-04-12T23:44:08+03:00'
)
select parse_timestamp('%FT%H:%M:%E*S%Ez',regexp_replace(ts_str,'Z$','+00:00')) as ts
from a

|               ts               |
|--------------------------------|
| 2021-04-12 20:44:06.958410 UTC |
| 2021-04-12 20:44:07.837380 UTC |
| 2021-04-12 20:44:08 UTC        |

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?