Вставить json в бд

Я пытаюсь вставить данные json в db. Пример json:

{ 
"events": 
  [{                                                                                                   
     "timestamp": 1298734,                                                                                               
     "message": "START RequestId: bjn937645",                                                    
     "ingestiontime": 123456                                                                       
  }]
}

Таблица:

Create table events(id, timestamp, message, ingestion_time) 

Я могу получить временную метку и значения сообщения, но ingestion_time имеет значение NULL. Я пытаюсь получить вложенные значения и преобразовать отметку времени эпохи в дату и время. Спасибо

Пожалуйста, редактировать ваш вопрос и добавьте полное и точное утверждение insert, которое вы используете (редактировать ваш вопрос, не добавляйте код или дополнительную информацию в комментарии)

a_horse_with_no_name 09.04.2022 10:24

Вы хотите «Вставить json» или «Вставить значения, полученные из json»?

Luuk 09.04.2022 10:32

123456/3600 = 34,29. это больше 24. Итак, последний столбец представляет значение в секундах?

Mark 09.04.2022 11:46

для инъекции_время 123456 вы имеете в виду: 12:34:56?

Mark 09.04.2022 12:05

Я хочу вставить значения, полученные из json, и да, Марк, я имею в виду 12:34:56. Спасибо ребята

John M 09.04.2022 20:30
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
5
22
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
insert into events (timestamp, message, ingestion_time)
select a.json#>>'{events,0,timestamp}', a.json#>>'{events,0,message}', to_timestamp(cast(a.json#>>'{events,0,ingestiontime}' AS integer))
  from (select
'{ 
"events": 
  [{                                                                                                   
     "timestamp": 1298734,                                                                                               
     "message": "START RequestId: bjn937645",                                                    
     "ingestiontime": 123456                                                                       
  }]
}' :: json AS json) AS a

см. тест в dbfiddle

это сработало путем приведения к BIGINT. Как вставить несколько записей?

John M 09.04.2022 22:11

Другие вопросы по теме