我有以下场景:
我有员工注册他们的签到/离开他们的工作。但他们有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时间戳contacts.entry_time VARCHAR
你能帮帮我吗?
发布于 2016-05-12 09:07:12
PostgreSQL中的日期、时间和时间戳可以与间隔值相加/相减:
SELECT now()::time - INTERVAL '10 min'如果您的时间戳字段是varchar,您可以先将其转换为timestamp数据类型,然后再减去间隔:
( (left(precence_records.created::text, 11) || ' ') ||
(contacts.entry_time::time + INTERVAL '10min')::text )::timestamp <
precence_records.created::timestamphttps://stackoverflow.com/questions/37173732
复制相似问题