我在表X中有一个名为start_date
的列。
在我的php项目中,当我使用简单的select * from table x where id = 1
从我的测试数据库中的表X中检索一行时,会返回以下内容:
{"id":1,"start_date":"2017-12-05 18:56:07"}
现在,当我在生产数据库中执行相同操作时,将返回以下内容:
{"id":1,"start_date":"05\/12\/2017 18:56:07"
我的数据库都使用
设置为datestyle
的{{1}}相同
ISO,DMY
为什么如果这两个设置都相同且我的生产数据库是我的测试数据库的恢复,这两个查询是否会返回不同的格式?
编辑:我在我的php项目中使用codeigniters查询构建器来从db中检索值。然后,我使用ALTER DATABASE xx SET datestyle TO ISO, DMY;
查看直接结果的值。这是我的php codeigniter方法:
var_dump
如果我用以下代码替换该功能,它可以工作,但我仍然想知道为什么顶部返回两个不同的结果。
function get_last($id) {
$this->db->where ( "id", $id);
return $this->db->get ('table_x')->row_array ();
}
这也让我更加相信postgregsql是格式回归的原因,因为直接定义格式是有效的。