Asa*_*uhi 1 postgresql datetime ruby-on-rails
查询数据库中的created_at值会得到以下输出:
>> kevin.created_at
=> Sun, 21 Aug 2016 07:46:26 UTC +00:00
Run Code Online (Sandbox Code Playgroud)
如何从这些信息中仅提取年份?
我试着把它kevin.created_at视为一个字符串,看看我能不能得到我想要的东西:
>> kevin.created_at.split[3].to_i
Run Code Online (Sandbox Code Playgroud)
但是我收到这条消息:
NoMethodError: undefined method `split' for Sun, 21 Aug 2016 07:46:26 UTC +00:00:Time
Run Code Online (Sandbox Code Playgroud)
所以我试过:
>> kevin.created_at.to_a
=> [26, 46, 7, 21, 8, 2016, 0, 234, false, "UTC"]
Run Code Online (Sandbox Code Playgroud)
所以我可能有一个解决方案:
>> kevin.created_at.to_a[5]
=> 2016
Run Code Online (Sandbox Code Playgroud)
有没有更好或更优雅的解决方案来查询Postgresql获取此信息?
在Postgres中,该EXTRACT功能可以为您提供从日期开始的年份:
# SELECT EXTRACT('year' FROM created_at) as year FROM USERS LIMIT 1;
year
------
2016
(1 row)
Run Code Online (Sandbox Code Playgroud)
在Ruby中,如果您已经掌握了记录,则可以使用以下Time#year方法:
user.created_at.year # => 2016
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6944 次 |
| 最近记录: |