SQL里怎么判断两个日期是不是在同一个月内

SQL里怎么判断两个日期是不是在同一个月内,第1张

select DATEDIFF (DAY ,日期1,日期2 ), * from 查询表 where DATEDIFF (DAY ,日期1,日期2 ) <=30

也可以:

select DATEDIFF (month,日期1,日期2 ), * from 查询表 where DATEDIFF (month,日期1,日期2 ) <1

注释:

1、DATEDIFF (DAY ,日期1,日期2 ) 是取得两个日期直接的天数;DATEDIFF (DAY ,日期1,日期2 )<=30 一个月以30天计算的。

2、DATEDIFF (month,日期1,日期2 ) 是取得两个日期直接的天数;DATEDIFF (month,日期1,日期2 )<1

用to_char函数即可。

如emp表中数据如下:

要查询hiredate的日期为1981年1月1日到1981年5月1日之间的数据,可用如下语句:

select * from emp where to_char(hiredate,'yyyy-mm-dd') between '1981-01-01' and '1981-05-01'

查询结果:

with t1(d) as (

    select cast('2013-12-02' as datetime)

    union all select cast('2014-1-10' as datetime)

    ),

t2(d) as (

    select dateadd(mm, datediff(mm, 0, getdate()), 0)

    )  --月初

select t1.* 

from t1 join t2 on t1.d between t2.d and t2.d+31-day(t2.d+31)  --月初到月末


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9610922.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存