created macro and fixed naming
This commit is contained in:
parent
ee6b613887
commit
0a880a138b
2 changed files with 28 additions and 22 deletions
22
macros/timestamp_to_utc.sql
Normal file
22
macros/timestamp_to_utc.sql
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
/*
|
||||||
|
This macro converts a timestamp column from Unix epoch time (in milliseconds)
|
||||||
|
to a UTC timestamp and a corresponding UTC date.
|
||||||
|
|
||||||
|
It generates two output fields:
|
||||||
|
1. The timestamp in UTC, with the alias formatted as <column_name>_at_utc.
|
||||||
|
2. The date in UTC, with the alias formatted as <column_name>_date_utc.
|
||||||
|
|
||||||
|
This macro is intended to be used within a SELECT statement
|
||||||
|
and ensures that the output is properly formatted for further analysis.
|
||||||
|
*/
|
||||||
|
{% macro timestamp_to_utc(column_name) %}
|
||||||
|
to_timestamp(
|
||||||
|
{{ adapter.quote(column_name) }}::double precision / 1000
|
||||||
|
) at time zone 'UTC' as {{ column_name | replace("At", "") }}_at_utc,
|
||||||
|
|
||||||
|
cast(
|
||||||
|
to_timestamp(
|
||||||
|
{{ adapter.quote(column_name) }}::double precision / 1000
|
||||||
|
) at time zone 'UTC' as date
|
||||||
|
) as {{ column_name | replace("At", "") }}_date_utc
|
||||||
|
{% endmacro %}
|
||||||
|
|
@ -1,29 +1,13 @@
|
||||||
with
|
with
|
||||||
raw_form_submissions as (select * from {{ source("hubspot", "form_submissions") }}),
|
raw_form_submissions as (select * from {{ source("hubspot", "form_submissions") }}),
|
||||||
stg_core__form_submissions as (
|
stg_hubspot__form_submissions as (
|
||||||
select
|
select
|
||||||
{{ adapter.quote("formId") }} as id_form, {{ adapter.quote("values") }} as
|
{{ adapter.quote("formId") }} as id_form,
|
||||||
values
|
{{ adapter.quote("values") }} as "values",
|
||||||
,
|
{{ timestamp_to_utc("submittedAt") }},
|
||||||
{{ adapter.quote("pageUrl") }} as page_url,
|
{{ timestamp_to_utc("updatedAt") }},
|
||||||
to_timestamp(
|
|
||||||
{{ adapter.quote("submittedAt") }}::double precision / 1000
|
|
||||||
) at time zone 'UTC' as submitted_at_utc,
|
|
||||||
cast(
|
|
||||||
to_timestamp(
|
|
||||||
{{ adapter.quote("submittedAt") }}::double precision / 1000
|
|
||||||
) at time zone 'UTC' as date
|
|
||||||
) as submitted_date_utc,
|
|
||||||
to_timestamp(
|
|
||||||
{{ adapter.quote("updatedAt") }}::double precision / 1000
|
|
||||||
) at time zone 'UTC' as updated_at_utc,
|
|
||||||
cast(
|
|
||||||
to_timestamp(
|
|
||||||
{{ adapter.quote("updatedAt") }}::double precision / 1000
|
|
||||||
) at time zone 'UTC' as date
|
|
||||||
) as updated_date_utc,
|
|
||||||
{{ adapter.quote("_airbyte_extracted_at") }} as dwh_extracted_at_utc
|
{{ adapter.quote("_airbyte_extracted_at") }} as dwh_extracted_at_utc
|
||||||
from raw_form_submissions
|
from raw_form_submissions
|
||||||
)
|
)
|
||||||
select *
|
select *
|
||||||
from stg_core__form_submissions
|
from stg_hubspot__form_submissions
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue