sql如何按日期中的月份查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql如何按日期中的月份查询相关的知识,希望对你有一定的参考价值。

比如:我要查今年6月到9月的信息 SQL语句该怎么写?
比如:我要查2008年6月到9月的信息 SQL语句怎么写
怎么写语句?谢谢了

select * from 表名 where datepart(dd,时间字段)=要查询日期的天数 and
datepart(mm,时间字段)=要查询的月份

例如有个表t_cp 时间字段stime
select * from t_cp where datepart(dd,stime)=5 and datepart(mm,stime)=8

查询这个表中,8月5号的数据
参考技术A 可使用SQL datediff (时间差)来查询某个月份,这是最简的方法:
DATEDIFF 函数
功能 返回两个日期之间的间隔。
语法 DATEDIFF ( date-part, date-expression-1, date-expression-2 )
date-part : year | quarter | month | week | day | hour | minute | second | millisecond
参数 date-part 指定要测量其间隔的日期部分。
要获取某个月的SQL为如下:
select * from table where datediff(month,date_ColName,'2014-12-1')=0
date_ColName:为表中的日期格式的列
'2014-12-1':此为你要查询的某个月的日期格式。
参考技术B 看你这个需要对比的字段是什么类型的。

1、字符型:
select * from 表名 where 字段 between '2008-06' and '2008-09';

2、日期型:
select * from 表名 where to_char(字段,'yyyy-mm') between '2008-06' and '2008-09';
参考技术C select * from tableName where datefield>='2010-06-01' and datefield<'2010-10-01';
如果到9月底,就写10月1号,即10月1号零点零分。
参考技术D select * from tab1 where timerow>'2008-06-01' and timerow<'2008-09-01'
这是简单的查询语句
如果有特殊条件,就要写其他条件

如何查询按日期过滤的活动记录?

【中文标题】如何查询按日期过滤的活动记录?【英文标题】:How to query the active record filtering by date? 【发布时间】:2021-11-20 23:01:31 【问题描述】:

我如何才能从我的数据库中选择 所有 只在 5 月份处于活动状态的学生?我在活动记录文档中找不到它。我只设法查询了 5 月创建的学生,而不是 ALL 活跃的学生....

Student.where(status:'active', created_at: ('2021-05-01'..'2021-05-31')).count

实际上,我的想法是这样的:

Student.where(status:'active', datetime: (('2021-05-01'..'2021-05-31')).count

【问题讨论】:

【参考方案1】:

你需要像这样解析日期:

Student.where(status:'active', created_at: (Date.parse('2021-05-01')..Date.parse('2021-05-31'))).count

你也可以让 Rails 设置月份的开始和结束:

Student.where(status:'active', created_at: (Time.new(2021, 5).beginning_of_month..Time.new(2021, 5).end_of_month))).count

如果状态是enum,你也可以这样查询:

Student.active.where(created_at: (Time.new(2021, 5).beginning_of_month..Time.new(2021, 5).end_of_month))).count

【讨论】:

在 Rails 中你也可以使用all_month 方法(例如:Time.new(2021, 5).all_month)apidock.com/rails/Time/all_month 我不知道all_month。很酷!谢谢

以上是关于sql如何按日期中的月份查询的主要内容,如果未能解决你的问题,请参考以下文章

SQL中按日期进行查询,如何截取日期进行查询

如何从 SQL 中的日期获取字符串类型的月份?

sql 查询中 有12个月表 写一个查询从中提取所有日期

如何使用查询获取两个给定日期之间的月份列表?

SQL里怎么把日期截取为月份

如何从 SQL Server 中的日期获取月份编号(不是月份名称)?