sql获取这个月与上个月的数据(加分)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql获取这个月与上个月的数据(加分)相关的知识,希望对你有一定的参考价值。
就是获取比如今天13号,就获取本月十三号和上月十三号,一一对应!求解……加分
各位理解错了!我要的是本月1号到13号和上月1号到十三号的数据。并且都要显示出来。
2> go
今天 上月
----------------------- -----------------------
2011-10-13 17:01:23.223 2011-09-13 17:01:23.223
(1 行受影响)
上面是 sql server 的函数。本回答被提问者采纳 参考技术B select * from table where datepart(dd,时间)<=13 参考技术C select * from 表 where datepart(dd,时间)=13 参考技术D -------------------------------------------------------------------------------------------------------------------------- 上月1号-13号,这月1-13号--------------------
MSSQL: select * from [table] where [column] between dateadd(day,-day(getdate())+1,getdate()) and getdate() union all
select * from [table] where [column] between dateadd(day,-day(dateadd(month,-1,getdate()))+1,dateadd(month,-1,getdate())) and dateadd(month,-1,getdate())
oracle : select * from [table] where [column] between trunc(sysdate,'mm') and sysdate union all select * from [table] where [column] between trunc(add_months(sysdate,-1) ,'mm') and add_months(sysdate,-1)
在sql中获取上个月日期的数据
【中文标题】在sql中获取上个月日期的数据【英文标题】:Getting the last month date's data in sql 【发布时间】:2014-01-23 07:31:39 【问题描述】:我有以下查询来获取上个月日期的数据。假设今天是23rd Dec
,那么它获取23rd Nov
数据。但是当它是31st Dec
时,就没有31st Nov
。在这种情况下,它应该获取30th Nov
数据。
所以,我想减少一天并再次检查条件并应该获取数据。在这种情况下,假设在March 31st
,首先该查询甚至应该检查feb 31st
,然后它应该检查feb 30
,然后是29th
,以此类推,直到该特定月份的有效日期。
我当前的查询:
select *
from dataTable
where date(datecolumn)=date(add_months(DATE(sysdate-1) ,-1));
因此,这只获取上个月的日期数据。那么,有人可以建议我如何检查查询中提到的验证并获取数据吗?
【问题讨论】:
您当前的查询不是有效的 Postgres 查询。你确定你正在使用或瞄准 Postgres? @MilenA.Radev 抱歉,我目前正在 mysql 中测试此查询,必须将此查询转移到实际服务器上的 postgres。 如果是 12 月 30 日,它应该获取什么? @PeterRing 同样,在 12 月 30 日它应该获取 11 月 30 日,甚至在 12 月 31 日它应该获取 11 月 30 日,因为 11 月 31 日不是有效日期。 【参考方案1】:试试这个:
SELECT dateadd(mm, -1, Convert(Datetime, '2013-12-31')
【讨论】:
这是否适用于条件?就像是 10 月 31 日一样,它应该获取 9 月 30 日,因为 9 月 31 日无效。 执行即可。我认为您不需要任何条件,只需通过日期即可。以上是关于sql获取这个月与上个月的数据(加分)的主要内容,如果未能解决你的问题,请参考以下文章