在postgres中datetime.datetime.now()的等价是什么?



我有我的代码,并希望在SQL中返回当前时间(我使用postgres)。

procedure = PGFunction(
schema="public",
signature="in_out(_profile_id integer, _item_id integer, _channel_id integer, _allowed Boolean, _source_datetime timestamp)",
definition="""
RETURNS boolean
LANGUAGE sql AS $$
INSERT INTO local_cache(profile_id, item_id, channel_id, source_datetime)
VALUES(_profile_id, _item_id, _channel_id, _source_datetime)
ON CONFLICT ON CONSTRAINT local_cache_pkey
DO UPDATE local_cache
SET source_datetime = CURRENT_TIMESTAMP??
WHERE _source_datetime > source_datetime
AND profile_id = _profile_id 
AND item_id = _item_id 
AND channel_id = _channel_id
$$;"""
)

是"CURRENT_TIMESTAMP"吗?另外,如何在SQL中返回行计数,显示有多少行受到此存储过程执行的影响(有多少行被更新,有多少行未更新)?我不确定我是否应该使用SELECT COUNT(*)它会相当慢

如果需要数据库事务开始时的时间戳,则使用current_timestamp。该函数对数据库事务中的所有调用返回相同的值。

如果您想要当前系统时钟时间戳,使用clock_timestamp()

最新更新