在SQL中从日期字符串中删除双引号

Ank*_*ore 2 google-bigquery

JSON_EXTRACT()用来从json检索日期。

我想获取不带双引号的日期。

这是我在做什么的示例:

JSON_EXTRACT(JSON_EXTRACT(events, "$.my_member"), "$.my_Number") as xyz
Run Code Online (Sandbox Code Playgroud)

my_number 持有日期字符串为“ 2016-01-01 11:31:25”,我想要这个不带双引号。

我尝试将时间戳记用作:

timestamp(JSON_EXTRACT(JSON_EXTRACT(events, "$.my_member"), "$.my_Number"))
Run Code Online (Sandbox Code Playgroud)

但它向xyz返回一个空值。

谢谢。

Mik*_*ant 5

尝试

JSON_EXTRACT_SCALAR(JSON_EXTRACT(events, "$.my_member"), "$.my_Number")
Run Code Online (Sandbox Code Playgroud)

另外,您应该能够通过构建正确的JSON路径并仅使用JSON函数来进一步“优化”表达式。请参阅下面的“提示”

SELECT 
  JSON_EXTRACT_SCALAR(
    '{"my_member":{"my_Number":"2016-01-01 11:31:25"}}', 
    "$.my_member.my_Number"
  )  
Run Code Online (Sandbox Code Playgroud)

查看更多详细信息,以及JSON函数上的 JSON_EXTRACT_SCALAR和JSON_EXTRACT之间的区别

  • 这是正确答案。SCALAR 版本旨在提取字符串等标量值。 (3认同)

Pen*_*m10 3

跑步REPLACE

REPLACE(JSON_EXTRACT(JSON_EXTRACT(events, "$.my_member"), "$.my_Number"),"\"","") as xyz
Run Code Online (Sandbox Code Playgroud)