我正在尝试将当前时间戳存储为hstore中的默认值。我尝试使用now()
,但所有存储的都是"last_collected"=>"now()"
。这就是我所拥有的:
'"level"=>"1", "last_collected"=>now()'::hstore
是否有正确的方法可以做到这一点,还是可能?谢谢!
答案 0 :(得分:3)
使用其中一个hstore
constructor functions可能会更容易:
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
,因此您的时间戳将是一个字符串。您可能希望使用to_char
而不是::text
将时间戳转换为字符串,这样可以更好地控制精度和格式。
hstore(ARRAY['level', '1', 'last_collected', to_char(CURRENT_TIMESTAMP, 'HH12:MI:SS')]);