Используйте REGEX_SUBSTR, чтобы получить все символы перед определенным разделителем

#sql #string #snowflake-cloud-data-platform

Вопрос:

Я пытаюсь проанализировать 2021-11-16T04:42:00.000 0000 2021-11-16 использование REGEX_SUBSTR с помощью SQL на платформе Snowflake.

Любая помощь будет признательна.

Комментарии:

1. что вы пробовали до сих пор?

2. попытался сослаться REGEXP_SUBSTR("Website", '^(https?://)?(.*)', 1, 1, 'e', 2) на то, что дало бы мне домен после https — части URL — адреса-так что-то вроде REGEXP_SUBSTR("TimeStamp", '^(T)?(.*)', 1, 1, 'e', 2) -что, очевидно, не сработало

Ответ №1:

 select left('2021-11-16T04:42:00.000 0000', 10);  

выход

 2021-11-16  

Комментарии:

1. ладонь лица , спасибо за это … думаю, regex_substr был излишним

Ответ №2:

Зависит от того, чего вы хотите достичь:

 with t as (  select '2021-11-16T04:42:00.000 0000' a  union   select 'garbage' a ) select REGEXP_SUBSTR(a, '[0-9]{4}-[0-9]{2}-[0-9]{2}') as date from t;   ------------  | DATE | |------------| | 2021-11-16 | | NULL |  ------------   

или

 with t as (  select '2021-11-16T04:42:00.000 0000' a  union   select 'garbage' a ) select try_to_timestamp(a, 'YYYY-MM-DDTHH12:MI:SS.FFTZHTZM')::date as date from t;   ------------  | DATE | |------------| | 2021-11-16 | | NULL |  ------------   

или

 with t as (  select '2021-11-16T04:42:00.000 0000' a  union   select 'garbage' a ) select left(a, 10) as date from t;   ------------  | DATE | |------------| | 2021-11-16 | | garbage |  ------------