Тип данных продолжительности в объекте TimeIntervalDto - PullRequest
0 голосов
/ 17 марта 2020

Я создаю базу данных для хранения записей времени, которые были созданы в Clockify, мне нужно объявить тип данных для поля длительности. Строка возвращается в TimeIntervalDto, и в документации API приведен пример «PT1M4S» или «PT1H30M15S». Это, очевидно, значимая строка, если вы знаете, как ее декодировать.

Пример, приведенный в документации API:

"timeInterval": {"duration": "PT1M4S", (пример: PT1H30M15S - 1 час 30 минут 15 секунд) "end": "2018-06-12T14: 01: 41Z", "start": "2018-06-12T14: 00: 37Z"},

Мои вопросы:

  1. Как Я перевожу длительность во что-то значимое; и
  2. Каков максимальный размер, который мне нужен для обслуживания, если предположить, что я использую varchar или nvarchar в качестве типа данных?

1 Ответ

0 голосов
/ 16 апреля 2020

Если вы используете Postgres База данных, вы можете создать новый столбец на основе конечного и начального столбцов. Таким образом, вам не нужно создавать новый столбец только для продолжительности, поскольку он уже подразумевается с двумя другими столбцами.

Если вы хотите получить длительности, вы можете выполнить этот запрос:

SELECT (t.end - t.start) as "duration", t.start, t.end from t

Это вернет вам новый столбец "duration" типа интервал .


Если вы действительно хотите создать новый столбец, вы можете выполнить триггер SQL заполнять столбец «длительность» типа интервал , используя столбцы «начало» и «конец» каждый раз, когда в таблицу добавляется новая запись.

...