2016-04-21 3 views
0

У меня есть следующие данные в столбце b, который является частью таблицы x.Как извлечь метку времени из строковой переменной в mysql

Table x Column b 
       {"op":"&","c":[{"type":"date","d":">=","t":1459756800}],"showc":[true]}   
       {"op":"&","showc":[true],"c":[{"type":"date","d":">=","t":1460534400}]} 

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

  SELECT substring(Column b, 44 , 10) 
      FROM Table x 

Как я могу извлечь только временную метку. Много Оценило

ответ

1

Этого ответа для MySQL < 5.7, кажется, 5,7 добавлена ​​JSON поддержки

Native выполнения запрос не поддерживает формат JSON синтаксический, которая привела бы к всем видам проблем, если вы пытались разобрать этот столбец в виде строки. Пример вопроса будет разница в размещении значение временной метки в связи с различными приличиями, длина строки и т.д.

Вам необходимо добавить поддержку JSON разборе либо через скрипт (PHP, ...) или увеличить функциональные возможности MySQL

I никогда не обойтись, чтобы использовать его, но общая схема может помочь вам. Я уверен, что есть и другие способы https://code.google.com/archive/p/common-schema/

Пример из http://mechanics.flite.com/blog/2013/04/08/json-parsing-in-mysql-using-common-schema/:

mysql> select common_schema.extract_json_value(f.event_data,'/age') as age, 
    -> common_schema.extract_json_value(f.event_data,'/gender') as gender, 
    -> sum(f.event_count) as event_count 
    -> from json_event_fact f 
    -> group by age, gender; 
+0

спасибо @ user3802077 он работал в MySQL, его жаль, что инструмент отчетности Я использую не поддерживает функцию парсинга JSON – Chaa22