PostgreSQL中的列是否有默认值Unix时间戳?

PostgreSQL中的列是否有默认值Unix时间戳?

问题描述:

我不知道为什么,但我喜欢使用Unix时间戳。也许是因为我需要用数字来计算时间,例如时间() - 604800。PostgreSQL中的列是否有默认值Unix时间戳?

现在我有整数列whereto我插入时间()的结果。我认为这是不正确的方式,是吗?有没有默认值 - UNIX时间戳?

你应该摆脱在数据库中使用unix时间戳的习惯。 PostgreSQL有really awesome date functions,如datetimecol - interval '1 week'。它还可以使用extract(epoch from datetimecol)轻松转换为unix时间戳。

无论如何,你可以使用extract(epoch from now())为你列的默认值。

+0

我认为它来自MySQL,在我使用它之前我不喜欢时间函数。最近我已经决定MySQL不适合我的需求,我选择了PgSql。 :) – 2012-04-24 08:49:49

+3

猜对了。把它作为摆脱坏习惯的理由。如果你使用的PHP也开始使用PDO或至少['pg_query_params()'](http://php.net/manual/en/function.pg-query-params.php)而不是转义。 – ThiefMaster 2012-04-24 08:50:54

+0

当然,我正在使用PDO_pgsql。 – 2012-04-24 09:00:22