oracle的话
select from 表名 where to_char(日期字段,'yyyymm')=to_char(add_months(sysdate,-1),'yyyymm')
sqlserver的话
select from 表名 where convert(varchar(6),日期字段,112)=convert(varchar(6),dateadd(month,-1,getdate()),112)
sqlserver:
select convert(varchar(7),dateadd(mm,-tnumber,getdate()),120)from
(select number from masterspt_values where type='P') t
where year(dateadd(mm,-tnumber,getdate()))=year(getdate())
order by convert(varchar(7),dateadd(mm,-tnumber,getdate()),120)
oracle:
select to_char(add_months(sysdate, -trn), 'yyyy-mm')from dual a, (select rownum - 1 rn from dual connect by rownum <= 12) t
where to_char(add_months(sysdate, -trn), 'yyyy') =
to_char(sysdate, 'yyyy')
order by to_char(add_months(sysdate, -trn), 'yyyy-mm')
select number+1
from masterspt_values
where type='p' and DATEADD(day,number, cast(CONVERT(varchar(7),'2013-02-03')+'-01' as datetime))<DATEADD(MONTH,1,cast(CONVERT(varchar(7),'2013-02-03')+'-01' as datetime))
GETDATE()
是获取当前时间的函数
取上周时间 需要用当前的减几天
需要知道 你想取得具体是什么时间
>
sql
server:
取年:
year(时间)
或者datepart(year,时间)
取月:
month(时间)或者datepart(month,时间)
oracle:
取年:
extract(year
from
时间)
或者
to_char(时间,'yyyy')
取月:
extract(month
from
时间)
或者
to_char(时间,'mm')
当然,上述前提都是你的时间是时间类型的,比如sql
server中是datetime类型,oracle中是date类型的
如果时间本来就是用字符串形式存储的,那直接根据格式用字符串函数处理就可以了
以上就是关于数据库如何查询上个月全部的内容,包括:数据库如何查询上个月、SQLServer、Oracle获取当前年份的1月到当前月之间的所有月份、SQL获取当月每一天的语句,比如现在是11月,查出的结果是1,2,3,4....30,最好是SQL等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)