standardsql
1#standardsql 2with T as ( 3 select 4 user_id 5 ,user_properties.value.string_value as birthday 6 7 from 8 `全日付のテーブル` 9 ,unnest(user_properties) user_properties 10 where ( 11 _TABLE_SUFFIX between "20180707" 12 and 13 FORMAT_DATE ("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)) 14 ) 15 and 16 app_info.install_source = "iTunes" 17 and 18 date(TIMESTAMP_ADD (timestamp_micros(user_first_touch_timestamp),interval device.time_zone_offset_seconds SECOND)) > Date("2018-07-06") 19 and 20 date(TIMESTAMP_ADD(timestamp_micros(user_first_touch_timestamp), interval device.time_zone_offset_seconds SECOND)) < CURRENT_DATE('Asia/Tokyo') 21 and 22 date(TIMESTAMP_ADD(timestamp_micros(user_first_touch_timestamp), interval device.time_zone_offset_seconds SECOND)) = parse_date("%Y%m%d", event_date) 23 and 24 user_id is not null 25 and 26 ----誕生日入力されてるユーザーのみ抽出 27 user_properties.key = "birthdate" 28 limit 10000 29) 30 31,users as ( 32 select 33 user_id as id 34 from 35 T 36 group by user_id 37) 38 39,age as ( 40 select 41 user_id 42 ,cast((cast(FORMAT_DATE("%Y%m%d",CURRENT_DATE()) as int64)-cast(FORMAT_DATE("%Y%m%d",date(T.birthday)) as int64))/10000 as int64) as age 43 44 from 45 T 46) 47select * 48from age
user_id|age
のビューをつくる段階なのですが、ageのビューでのエラーが何が原因かわかりません。
おそらく日付の扱いでミスがあるのですが、そもそも日付の型変換についてあまりよくわかっていないため、なにがだめなのかがわからないです。
ちなみに、birthdayのカラムは以下のようになってます。
1995/01/14 00:00:00
1995/01/14 00:00:00
1995/01/14 00:00:00
##追記
エラー文
Error running query: No matching signature for function DATE for argument types: STRING. Supported signatures: DATE(TIMESTAMP, [STRING]); DATE(DATETIME); DATE(INT64, INT64, INT64) at [43:88]
43行目
standardsql
1 ,cast((cast(FORMAT_DATE("%Y%m%d",CURRENT_DATE()) as int64)-cast(FORMAT_DATE("%Y%m%d",date(T.birthday)) as int64))/10000 as int64) as age 2コード
ご回答いただけると幸いです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー