从oracle中的日期获取财政年度
有没有办法从一个日期(2013年7月24日)以简短的方式找出当前财政年度(2013-2014年) 我试过这个从oracle中的日期获取财政年度,oracle,Oracle,有没有办法从一个日期(2013年7月24日)以简短的方式找出当前财政年度(2013-2014年) 我试过这个 select extract(year from report_date)||' - '|| extract(year from report_date) + 1 year from bdpr_swtch_yrd 除此之外,如果我能找到,所选日期属于哪个季度。鉴于您的会计年度截止日期为3月31日,这将返回基于当前日期的会计年度: SELECT EXTRACT(YE
select extract(year from report_date)||' - '||
extract(year from report_date) + 1 year
from bdpr_swtch_yrd
除此之外,如果我能找到,所选日期属于哪个季度。鉴于您的会计年度截止日期为3月31日,这将返回基于当前日期的会计年度:
SELECT
EXTRACT(YEAR FROM sysdate) + DECODE(SIGN(TO_CHAR(sysdate, 'MM') - 3), -1, 0, 1)
AS FISCAL_YEAR
FROM DUAL
这将返回当前日期的季度:
SELECT to_char(sysdate, 'Q')
FROM DUAL
鉴于您的会计年度截止日期为3月31日,因此应返回基于当前日期的会计年度:
SELECT
EXTRACT(YEAR FROM sysdate) + DECODE(SIGN(TO_CHAR(sysdate, 'MM') - 3), -1, 0, 1)
AS FISCAL_YEAR
FROM DUAL
这将返回当前日期的季度:
SELECT to_char(sysdate, 'Q')
FROM DUAL
因为有3个月的抵销,所以应该从当前日期减去3个月,然后提取年份
SELECT EXTRACT (YEAR FROM ADD_MONTHS (SYSDATE, -3))
|| '-'
|| EXTRACT (YEAR FROM ADD_MONTHS (SYSDATE, 9))
FROM DUAL;
Start_date:= to_date('01-04-'||EXTRACT (YEAR FROM ADD_MONTHS (reference_date, -3)),'dd-mm-yyyy')
End_date := to_date('01-04-'||EXTRACT (YEAR FROM ADD_MONTHS (reference_date, 9)),'dd-mm-yyyy')
输出:2013-2014
SELECT EXTRACT (YEAR FROM ADD_MONTHS (DATE '2013-03-31', -3))
|| '-'
|| EXTRACT (YEAR FROM ADD_MONTHS (DATE '2013-03-31', 9))
FROM DUAL;
输出:2012-2013
编辑:
要查找财政年度中的所有记录,首先需要查找财政年度的开始和结束日期,即始终为4月1日和3月31日。有几种方法可以做到这一点。我将继续采用与上面相同的方法,因为我们已经有了一年的时间
SELECT EXTRACT (YEAR FROM ADD_MONTHS (SYSDATE, -3))
|| '-'
|| EXTRACT (YEAR FROM ADD_MONTHS (SYSDATE, 9))
FROM DUAL;
Start_date:= to_date('01-04-'||EXTRACT (YEAR FROM ADD_MONTHS (reference_date, -3)),'dd-mm-yyyy')
End_date := to_date('01-04-'||EXTRACT (YEAR FROM ADD_MONTHS (reference_date, 9)),'dd-mm-yyyy')
所以,您的where子句应该如下所示
select * from table_name
where column_name between Start_date and End_date;
因为有3个月的抵销,所以应该从当前日期减去3个月,然后提取年份
SELECT EXTRACT (YEAR FROM ADD_MONTHS (SYSDATE, -3))
|| '-'
|| EXTRACT (YEAR FROM ADD_MONTHS (SYSDATE, 9))
FROM DUAL;
Start_date:= to_date('01-04-'||EXTRACT (YEAR FROM ADD_MONTHS (reference_date, -3)),'dd-mm-yyyy')
End_date := to_date('01-04-'||EXTRACT (YEAR FROM ADD_MONTHS (reference_date, 9)),'dd-mm-yyyy')
输出:2013-2014
SELECT EXTRACT (YEAR FROM ADD_MONTHS (DATE '2013-03-31', -3))
|| '-'
|| EXTRACT (YEAR FROM ADD_MONTHS (DATE '2013-03-31', 9))
FROM DUAL;
输出:2012-2013
编辑:
要查找财政年度中的所有记录,首先需要查找财政年度的开始和结束日期,即始终为4月1日和3月31日。有几种方法可以做到这一点。我将继续采用与上面相同的方法,因为我们已经有了一年的时间
SELECT EXTRACT (YEAR FROM ADD_MONTHS (SYSDATE, -3))
|| '-'
|| EXTRACT (YEAR FROM ADD_MONTHS (SYSDATE, 9))
FROM DUAL;
Start_date:= to_date('01-04-'||EXTRACT (YEAR FROM ADD_MONTHS (reference_date, -3)),'dd-mm-yyyy')
End_date := to_date('01-04-'||EXTRACT (YEAR FROM ADD_MONTHS (reference_date, 9)),'dd-mm-yyyy')
所以,您的where子句应该如下所示
select * from table_name
where column_name between Start_date and End_date;
对于其他格式:
select FY||'-'||(FY+1) as FY,FY||'-'||substr((FY+1),3,2) as FYN from (
SELECT CASE
WHEN TO_CHAR (sysdate, 'MMdd') > '0331'
THEN to_char(sysdate,'yyyy')
ELSE to_char(to_number(to_char(sysdate,'yyyy'))-1)
END AS FY
FROM DUAL);
对于其他格式:
select FY||'-'||(FY+1) as FY,FY||'-'||substr((FY+1),3,2) as FYN from (
SELECT CASE
WHEN TO_CHAR (sysdate, 'MMdd') > '0331'
THEN to_char(sysdate,'yyyy')
ELSE to_char(to_number(to_char(sysdate,'yyyy'))-1)
END AS FY
FROM DUAL);
试试这个,希望对你有帮助
试试看,希望这能对很多人有所帮助。对于很多人来说,财政年度从10月份开始,这将抵消+3。借用Noel的代码: 摘录(从添加月份起的年份(日期'2013-10-15',3)) 或 摘录(添加月份后的年份(系统日期,3))
此代码给出任何给定日期的会计年度。然后,您可以使用+1年或-1年,或者复制代码,以完成您需要的特定任务。对于许多人来说,会计年度从10月份开始,这将抵消+3。借用Noel的代码: 摘录(从添加月份起的年份(日期'2013-10-15',3)) 或 摘录(添加月份后的年份(系统日期,3))
此代码给出任何给定日期的会计年度。然后,您可以使用+1年或-1年或复制代码来具体执行所需操作。这不取决于财政年度的结束时间吗?例如,如果财政年度结束于6月30日(这并不少见),则逻辑将根据报告日期是在6月30日之前还是之后而有所不同。例如,如果报告日期为2013年4月15日,则应为2012-2013财年。但如果报告数据是2013年10月1日,那么应该是2013-2014财年。我这里指的是4月1日至3月31日的财年。财年或日历季度?同一财年……这不取决于财年结束的时间吗?例如,如果财政年度结束于6月30日(这并不少见),则逻辑将根据报告日期是在6月30日之前还是之后而有所不同。例如,如果报告日期为2013年4月15日,则应为2012-2013财年。但是如果报告数据是2013年10月1日,那么它应该是2013-2014财年。我这里指的是4月1日至3月31日的财年。财务季度还是日历季度?相同的财务季度……谢谢你的回答。这只是返回下一个财政年度(即2014年),但我想要的是财政年度(即2013-2014年),以防日期介于2013年4月1日至2014年3月31日之间,同样,下一个财政年度也是如此……谢谢你的回答。这只是返回下一个财政年度(即2014年),但我想要的是财政年度(即2013-2014年),以防某个日期介于2013年4月1日至2014年3月31日之间,同样地,对于下一个……亲爱的,有没有办法根据某个日期查找整个财政年度的所有记录。亲爱的,是否有一种方法可以根据日期查找整个财政年度的所有记录。