Postgresql 将时间戳存储为hstore中的默认值

Postgresql 将时间戳存储为hstore中的默认值,postgresql,hstore,Postgresql,Hstore,我试图将当前时间戳作为默认值存储在hstore中。我尝试使用now(),但存储的是“上次收集”=>“now()”。以下是我所拥有的: '"level"=>"1", "last_collected"=>now()'::hstore 有没有一个正确的方法来做到这一点,或者甚至是可能的?谢谢 使用以下选项之一可能更容易: hstore(text[]):从数组构造hstore,数组可以是键/值数组,也可以是二维数组。 hstore(text[],text[]):从单独的键和值数组构造hst

我试图将当前时间戳作为默认值存储在hstore中。我尝试使用
now()
,但存储的是
“上次收集”=>“now()”
。以下是我所拥有的:

'"level"=>"1", "last_collected"=>now()'::hstore
有没有一个正确的方法来做到这一点,或者甚至是可能的?谢谢

使用以下选项之一可能更容易:

hstore(text[])
:从数组构造hstore,数组可以是键/值数组,也可以是二维数组。
hstore(text[],text[])
:从单独的键和值数组构造hstore

因此,您可以使用其中一个:

hstore(array['level', '1', 'last_collected', now()::text])
hstore(array[array['level', '1'], array['last_collected', now()::text]])
hstore(array['level', 'last_collected'], array['1', now()::text])
请记住,hstore对键和值都使用
text
,因此时间戳将是一个字符串。您可能希望使用而不是
::text
将时间戳转换为字符串,这样可以更好地控制精度和格式

hstore(ARRAY['level', '1', 'last_collected', to_char(CURRENT_TIMESTAMP, 'HH12:MI:SS')]);