Дата отображается неправильно с запросом substr & like - PullRequest
0 голосов
/ 28 мая 2020
• 1000 Receive_files / asdasd_ 20191231 _11122333_123456789_CO.dat

некоторые из которых имеют больше символов, поэтому для меня, чтобы получить точную дату в столбце, несовместимо, если я использую подстроку

некоторые вернут 20191230, а некоторые - _2020123

Как решить эту проблему?

Я пытаюсь отображать только данные, при вводе используется язык sql или оттенок мой скрипт в,

select SUBSTR(input_file_name, LENGTH(input_file_name) - 44, 9) from th_ingestion_status limit 100

Мне кажется, мой скрипт для оператора Like и substr неверен

Ответы [ 2 ]

2 голосов
/ 28 мая 2020

Если вам нужна первая последовательность из 8 цифр, окруженных символами подчеркивания, используйте regexp_extract():

select regexp_extract(filename, '_([0-9]{8})_', 1)

Если вам это нужно после последнего /, тогда:

select regexp_extract(filename, '_([0-9]{8})_[^/]*$', 1)
0 голосов
/ 28 мая 2020

Пожалуйста, используйте запрос ниже, также укажите базу данных, которую вы используете, чтобы обеспечить соответствующий запрос

substr(column_name, instr(column_name, '_', 1, 2) +1, 6)    

Oracle Тестовый пример:

select 'hdfs://asdasda/asdas/fdsfdsfd/received_files/asdasd_20191231_11122333_123456789_CO.dat', substr('hdfs://asdasda/asdas/fdsfdsfd/received_files/asdasd_20191231_11122333_123456789_CO.dat', instr('hdfs://asdasda/asdas/fdsfdsfd/received_files/asdasd_20191231_11122333_123456789_CO.dat', '_', 1, 2) +1, 6)

из двойного;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...