php - postgres Actor |将间隔转换为 iso_8601 格式

标签 php postgresql datetime iso8601

在 pg 中月份可以是 'mon' 或 'month' 在 php 中 'mon' 代表星期一。

myinterval 是数据库上的间隔列。

如何制作pg输出

`SELECT myinterval FROM table` = 1 year 6 mons

`SELECT myinterval FROM table` = P1Y6M

我阅读了有关 intervalstyle 的内容,但我正在使用现有代码,因此我不能弄乱某些行,使用 intervalstyle 它将在整个 session 中发生变化

最佳答案

很抱歉这么晚才回答这个问题,但我刚刚在我的遗留代码库中遇到了同样的问题。我通过使用事务并在事务期间设置间隔样式解决了这个问题:

BEGIN;

SET LOCAL intervalstyle = 'iso_8601';
SELECT (INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second')::text;

COMMIT;

这输出 P6Y5M4DT3H2M1S

如果我之后直接运行它:

SELECT (INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second')::text;

然后我得到 6 years 5 mons 4 days 03:02:01

因此 session 的间隔样式不受影响。

关于php - postgres Actor |将间隔转换为 iso_8601 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34948026/

相关文章:

java - gwt 是否有单个日期时间选择器组件?

php - mysql select 用于检查条目是否存在

python - 在 flask 中使用 SQLalchemy 将数据插入 Postgres

c# - 将字符串转换为任何格式的日期时间

c# - 转换 dd/MM/yyyy hh :mm am/pm to MM/dd/yyyy hh:mm am/pm

postgresql - 表达式中带有 sha() 函数的 Postgres 索引

php - MySQL 从 PHP 中重命名列

javascript - strope.js 和 openfire 谁在页面重新加载时终止连接?

PHP:创建边缘光滑的圆、图像或字体?

string - 我如何从 PostgreSQL 中的十六进制中获取字符串值?