我有一个名为meta的数据库字段,它以这种格式存储一组日期时间
date_approved"=>"2015-01-01T10:19:44+00:00", "date_realized"=>"2015-01-01T10:31:11+00:00", "date_tn_approved"=>"2015-01-01T10:09:40+00:00"
是否可以选择SQL查询,例如date_approved在1月份的所有记录?
我没有处理将数值插入数据库的问题,因此我无法真正改变数据的存储方式
答案 0 :(得分:2)
如果数据确实以您向我们展示的方式存储,则可以使用hstore
来实现,因为该值可以直接转换为hstore
:
select *
from the_table
where extract(month from ((meta::hstore -> 'date_approved')::timestamp)) = 1
如果列中的格式与您向我们展示的格式完全不同,或者时间戳以不同的方式格式化,则会失败。
您可能需要create hstore
扩展程序才能使用该扩展程序:
create extension hstore;
这需要以超级用户身份完成。
SQLFiddle:http://sqlfiddle.com/#!15/d41d8/4408