sql 如何判断某个日期是否在这个月内
比如,日期a1:2013-12-02如何判断该日期不是在这个月(2014-01-01——2014-01-31)内的。我不是查询表的,,是根据当前时间获取这个月的第一天和最...
比如,日期a1:2013-12-02
如何判断该日期不是在这个月(2014-01-01——2014-01-31)内的。
我不是查询表的,,是根据当前时间获取这个月的第一天和最後一天,然後拿日期a1作比较,谢谢 展开
如何判断该日期不是在这个月(2014-01-01——2014-01-31)内的。
我不是查询表的,,是根据当前时间获取这个月的第一天和最後一天,然後拿日期a1作比较,谢谢 展开
5个回答
展开全部
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) --月初到月末
展开全部
SELECT DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0) AS 这个月第一天
SELECT DATEADD(d, - 1, DATEADD(mm, DATEDIFF(mm, 0, GETDATE())+1, 0)) AS 这个月最后一天
sql server 的写法
SELECT DATEADD(d, - 1, DATEADD(mm, DATEDIFF(mm, 0, GETDATE())+1, 0)) AS 这个月最后一天
sql server 的写法
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
declare @a1 datetime
set @a1 = '2013-12-02'
-- for M$SQL
declare @now datetime
declare @month_bgn datetime, @month_end datetime
set @now = getdate()
-- 这个月的第一天
set @month_bgn = dateadd(month, datediff(month, 0, getdate()), 0)
-- 这个月的最後一天
set @month_end = dateadd(ms, -3, dateadd(month, 1, @month_bgn))
-- 然後拿日期a1作比较
if @a1 between @month_bgn and @month_end
begin
print 'Between'
end
else
begin
print 'Out of range'
end
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a1>2014-01-31 or a1 < 2014-01-01 不就不在这个月?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接between这两个日期就可以了
追问
我不是查询表的,,是根据当前时间获取这个月的第一天和最後一天,然後拿日期a1作比较,谢谢
追答
我的意思就是这个。。。where exist (select 1 where a1 between date1 and date2)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询