2016-09-07 168 views

回答

0

如果使用Standard SQL,你可以做到以下几点:

SELECT * REPLACE(EXTRACT(DATE FROM curr_dt)) AS curr_dt FROM test.date_table 

如果curr_dt重复字段,那么该解决方案将看以下内容:

SELECT * REPLACE(
    ARRAY(
    SELECT EXTRACT(DATE FROM curr_dt) FROM t.curr_dt 
) AS curr_dt) 
FROM test.date_table t 
+0

谢谢。切换到标准SQL并运行提取日期工作正常。 – DWPro

+0

快速的问题 - 这是否适用于嵌套表(重复)? – DWPro

+0

已更新的答案包括如何处理重复的字段。 –

1

考虑下面!
作品在传统和标准SQL

SELECT CAST(DATE(CURR_DT) AS DATE) AS CURR_DT FROM TEST.DATE_TABLE 

Added to address comment

尝试以下 - 正如我上面提到的 - 它同时适用于传统和标准

SELECT CAST(DATE(CURR_DT) AS DATE) AS CURR_DT 
FROM (SELECT CURRENT_TIMESTAMP() AS CURR_DT) 

,如果您有兴趣让您的案子使用Legacy SQL - 提供有关CURR_DT字段的更多详细信息

+0

谢谢。它适用于标准SQL。当遗留的sql框被选中时,它给了我一个错误。可能是我没有正确使用它...........查询失败 错误:无效的函数名称:DATE_CAST;你的意思是DATE_ADD? 作业ID:np-sales-thd:bquijob_66fa6a82_15705fb227 – DWPro

+0

这意味着您的字段不是真正的时间戳数据类型。看看例子 - 我只是添加了证明 –

+0

Btw,只是在错误消息中注意到 - 'DATE_CAST' - 这不是我的例子的一部分 - 所以它最有可能失败其他地方 - 显示整个查询你使用,如果你想修复它 –

相关问题