Chessbrain Asked: 2021-01-21 03:10:13 +0800 CST2021-01-21 03:10:13 +0800 CST 2021-01-21 03:10:13 +0800 CST PostgreSQL 未记录的 timenow() 函数? 772 查看 PostgreSQL 的文档,我在timenow(). 但是,如果我调用该函数,它就可以工作。 那么now()和 和有什么不一样timenow()? 我猜这now()是基于事务,而timenow()服务器操作系统时间还是我完全关闭? 以下是 DataGrip 的自动生成定义。所有系统功能(例如sum)都具有missing source code并且您可以看到它是pg_catalog模式的一部分。 postgresql postgresql-11 1 个回答 Voted Best Answer Melkij 2021-01-21T04:21:05+08:002021-01-21T04:21:05+08:00 是的,这是无证的,非常古老的,很久以前不推荐使用的东西。 与函数的主要区别NOW在于结果的数据类型。timenow使用了 type abstime,它不太准确并且容易出现 2038 年的问题。文档中有一个小注释: abstime 和 reltime 类型是内部使用的低精度类型。不鼓励您在应用程序中使用这些类型;这些内部类型可能会在未来的版本中消失。 这种类型在具有所有相关功能的postgresql 12中被完全删除。根据源代码,我可以确认:是timenow的,每次调用都会返回实时,而不是事务开始的时间。 您可以通过使用clock_timestamp()函数而不是now()
是的,这是无证的,非常古老的,很久以前不推荐使用的东西。
与函数的主要区别
NOW
在于结果的数据类型。timenow
使用了 typeabstime
,它不太准确并且容易出现 2038 年的问题。文档中有一个小注释:这种类型在具有所有相关功能的postgresql 12中被完全删除。根据源代码,我可以确认:是
timenow
的,每次调用都会返回实时,而不是事务开始的时间。您可以通过使用
clock_timestamp()
函数而不是now()