Ruby on Rails 日期查询和修改的方法--数据库常用操作

Posted HaimaBlog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ruby on Rails 日期查询和修改的方法--数据库常用操作相关的知识,希望对你有一定的参考价值。

Ruby on Rails 日期查询方法

查询近超过1个小时的数量

Order.where(\' created_at <= ? \', DateTime.now - 1.hours).count

查询近三个月的数量

Order.where(\' created_at >= ? \', DateTime.now - 3.month).count

查询上个月的数量

Order.where(created_at: (DateTime.now - 1.month).beginning_of_month..DateTime.now.beginning_of_month).count

查询本月的数量

Order.where(\' created_at >= ? \', DateTime.now.beginning_of_month).count

近一周

Order.where(\' created_at >= ? \', DateTime.now - 7.day).count

修改超过一个小时的数据

    # 修改超过一个小时的任务
    # past_time = (n_time - 1.hours).strftime("%Y-%m-%d %H:%M:%S") 
    # => "2021-08-05 20:55:31" 
    CategoryStatistic
      .where("state = \'init\' and end_at IS NULL ")
      .where("begin_at<=?", DateTime.now - 1.hours)
      .update_all(state: FAILED, end_at: n_time, updated_at: n_time)

运行结果:

 UPDATE `category_statistics` SET `category_statistics`.`state` = \'failed\', `category_statistics`.`end_at` = \'2021-08-05 22:27:45\', `category_statistics`.`updated_at` = \'2021-08-05 22:27:45\' WHERE (state = \'init\' and end_at IS NULL ) AND (begin_at<=\'2021-08-05 21:27:45.684015\')

批量修改

Client.where(id: init_ip_infos.pluck(:id)).update_all(state: "init")

[Haima的博客] http://www.cnblogs.com/haima/

以上是关于Ruby on Rails 日期查询和修改的方法--数据库常用操作的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ruby​​ on rails 中编写嵌套查询?

Ruby on Rails 3 发布日期 [关闭]

Ruby on Rails,带有对象方法的表单助手

如何在 Ruby on Rails 中查看给定 ActiveRecord 查询将生成的 SQL

Ruby on Rails 路由到控制器

ruby on rails (模型关联查询)