t.date 属性小于当前年份的 SQL

标签 sql ruby-on-rails-3 postgresql

在我的 Rails 3 应用程序中,我试图通过学校名称和与当年相关的毕业日期来查找当前学生。我可以成功找到没有毕业日期的用户(见下文),但我想搜索毕业日期属性小于或大于当年的用户。仅供引用,我正在使用 PostgreSQL。

我使用的字段设置如下:

t.string :high_school
t.date :hs_grad_year

这是我目前正在研究的发现:

<%= pluralize(Profile.where(:high_school => "#{@highschool.name}").where("hs_grad_year IS NOT NULL").count, "person") %>

最佳答案

您的代码有几个问题(从数据库中获取记录应该在 Controller 中完成,而不是在 View 中完成,并且您使用高中名称作为外键而不是 id字段,例如),但要回答您的问题:

Profile.where %'
    high_school = ? AND
    EXTRACT(year FROM hs_grad_year) < EXTRACT(year FROM current_date)
  ',
  @highschool.name

关于t.date 属性小于当前年份的 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8886299/

相关文章:

sql - 安全地编写动态 SQL,使用在任何 View 中估计行的示例函数

entity-framework - 带有 postGIS 和 Entity Framework 的 Postgresql,CHECK 约束问题

linux - 无法在 CentOS 7 上安装 PostgreSQL 9.5/PostGIS 2.3

php - 1 周的每日平均值

行之间的 SQL 差异

mysql - 通过消除表中的重复项来显示序列号(rownum)以及 mysql 中的数据?

ruby-on-rails - 在 Ruby on Rails 中显示有向图

sql - 加入派生表postgres

jquery - 使用 AJAX/Ruby on Rails 在部分模板中定义局部变量

ruby-on-rails - 部分引用其他部分的相对路径