如果 Amazon Redshift 中的日期差异为负,则增加 120 分钟
Adding 120 minutes if date diff is negative in Amazon Redshift
我正在对一个人购买一件商品所需的时间进行分组,从会话时间到购买时间。在某些情况下,由于时区的原因,购买时间比应有的时间多了 120 分钟,在这种情况下,我想加上 120 分钟,然后像这样分组:
CASE
WHEN date_diff('minute'::character varying::text, sessions.event_time, sales.event_time) < 0 AND sales.event_time IS NOT NULL THEN '0. 0'::character varying
WHEN date_diff('minute'::character varying::text, sessions.event_time, sales.event_time) <= 5 AND sales.event_time IS NOT NULL THEN '1. 0-5min'::character varying
ELSE 'no sale'::character varying
END AS grouped_session_to_sale,
而且由于时差 2 小时,我得到了很多 0.0
组,我需要在 sales.event_time
上增加 120 分钟,我试过这个:
CASE
WHEN date_diff('minute'::character varying::text, sessions.event_time, sales.event_time) < 0
THEN sales.event_time::numeric+120::text
ELSE sales.event_time
END as sales.event_time,
CASE
WHEN date_diff('minute'::character varying::text, sessions.event_time, sales.event_time) < 0 AND sales.event_time IS NOT NULL THEN '0. 0'::character varying
WHEN date_diff('minute'::character varying::text, sessions.event_time, sales.event_time) <= 5 AND sales.event_time IS NOT NULL THEN '1. 0-5min'::character varying
ELSE 'no sale'::character varying
END AS grouped_session_to_sale
但是我收到一个非常无用的错误:
SQL Error [500310] [42601]: Amazon Invalid operation: syntax error at or near "."
Position: 3346;
我怎样才能达到这样的结果?
您不能将第一个 CASE 语句的输出分配给 sales.event_time - “END as sales.event_time”。这意味着您正在从 select 内部更改源数据。您可以将此输出称为“new_event_time”而不带“..
”
我正在对一个人购买一件商品所需的时间进行分组,从会话时间到购买时间。在某些情况下,由于时区的原因,购买时间比应有的时间多了 120 分钟,在这种情况下,我想加上 120 分钟,然后像这样分组:
CASE
WHEN date_diff('minute'::character varying::text, sessions.event_time, sales.event_time) < 0 AND sales.event_time IS NOT NULL THEN '0. 0'::character varying
WHEN date_diff('minute'::character varying::text, sessions.event_time, sales.event_time) <= 5 AND sales.event_time IS NOT NULL THEN '1. 0-5min'::character varying
ELSE 'no sale'::character varying
END AS grouped_session_to_sale,
而且由于时差 2 小时,我得到了很多 0.0
组,我需要在 sales.event_time
上增加 120 分钟,我试过这个:
CASE
WHEN date_diff('minute'::character varying::text, sessions.event_time, sales.event_time) < 0
THEN sales.event_time::numeric+120::text
ELSE sales.event_time
END as sales.event_time,
CASE
WHEN date_diff('minute'::character varying::text, sessions.event_time, sales.event_time) < 0 AND sales.event_time IS NOT NULL THEN '0. 0'::character varying
WHEN date_diff('minute'::character varying::text, sessions.event_time, sales.event_time) <= 5 AND sales.event_time IS NOT NULL THEN '1. 0-5min'::character varying
ELSE 'no sale'::character varying
END AS grouped_session_to_sale
但是我收到一个非常无用的错误:
SQL Error [500310] [42601]: Amazon Invalid operation: syntax error at or near "." Position: 3346;
我怎样才能达到这样的结果?
您不能将第一个 CASE 语句的输出分配给 sales.event_time - “END as sales.event_time”。这意味着您正在从 select 内部更改源数据。您可以将此输出称为“new_event_time”而不带“..
”