Sau*_*mar 8 datetime casting string-to-datetime google-bigquery
我有3列1.dd/mm/yyyy(存储为字符串)2.app_id和#downloads的应用程序
我必须在一周内找到下载的独特应用程序ID.
谢谢
Gra*_*ley 19
使用标准SQL更短:
SELECT TIMESTAMP(PARSE_DATE('%d/%m/%Y','23/03/2015'))
Run Code Online (Sandbox Code Playgroud)
Dan*_*itt 10
您可以使用以下内容将dd/MM/yyyy字符串转换为BigQuery时间戳:
SELECT TIMESTAMP(year + '-' + month + '-' + day) as output_timestamp
FROM (
SELECT
REGEXP_EXTRACT(input_date, '.*/([0-9]{4})$') as year,
REGEXP_EXTRACT(input_date, '^([0-9]{2}).*') as day,
REGEXP_EXTRACT(input_date, '.*/([0-9]{2})/.*') AS month
FROM
(SELECT '30/10/2015' as input_date),
(SELECT '25/01/2015' as input_date)
)
Run Code Online (Sandbox Code Playgroud)
将它们转换为时间戳后,您可能会发现日期和时间函数很有用,具体取决于您要执行的操作.
使用REGEXP_REPLACE缩短:
SELECT ds,
TIMESTAMP(REGEXP_REPLACE(ds, r'(..)/(..)/(....)', r'\3-\2-\1')) ts
FROM (SELECT '23/03/2015' ds)
Run Code Online (Sandbox Code Playgroud)
编辑
非领先零日期的更新版本:
SELECT ds,
TIMESTAMP(REGEXP_REPLACE(ds, r'(.?.)/(..)/(....)', r'\3-\2-\1')) ts
FROM (SELECT '1/01/2017' ds)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10432 次 |
最近记录: |