У меня есть следующий сценарий:Как вычитать/добавить минуты с отметкой времени в PostGreSQL
У меня есть сотрудники, которые регистрируют их проверку в/из их работы. Но у них есть 10 минут терпимости.
В конце записи я с этой точкой зрения:
CREATE OR REPLACE VIEW employees_late_entries
(
id,
created_datetime,
entry_datetime,
contact_id,
contact_name,
user_id,
employees_perm_id
)
AS
SELECT precence_records.id,
precence_records.created AS created_datetime,
("substring"(precence_records.created::text, 0, 11) || ' '::text) || contacts.entry_time::text AS entry_datetime,
contacts.id AS contact_id,
contacts.name AS contact_name,
precence_records.user_id,
precence_records.employees_perm_id
FROM precence_records,
contacts
WHERE
precence_records.type::text = 'entry'::text AND
contacts.employee = true AND
contacts.id = precence_records.contact_id AND
(("substring"(precence_records.created::text, 0, 11) || ' '::text) || contacts.entry_time::text) < precence_records.created::text AND
precence_records.employees_perm_id IS NULL;
precence_records.created
является проверка времени и contacts.entry_time
его время от времени ввода расписания для сотрудника.
Это condition contacts.entry_time
против precence_records.created
получить поздние записи:
(("substring"(precence_records.created::text, 0, 11) || ' '::text) || contacts.entry_time::text) < precence_records.created::text
Так что я хочу сделать что-то вроде этого:
( ("substring"(precence_records.created::text, 0, 11) || ' '::text) || (contacts.entry_time::text + 10 MINUTES) ) < precence_records.created::text
типы данных:
precence_records.created TIMESTAMP contacts.entry_time VARCHAR
Можете ли вы помочь мне, пожалуйста
Что такое формат столбца 'entry_time'? И почему вы не используете для этого тип данных 'time'? И зачем вам нужен дополнительный столбец времени, если 'created' уже содержит дату ** и ** время?' –
entry_time - VARCHAR – juanpscotto
Да, но что такое _format_ _values_ там (и снова: ** почему ** 'varchar'?) –