【发布时间】:2016-01-30 10:41:09
【问题描述】:
我正在尝试添加一个会计年度列。我们的财政年度看起来像这样:Q1 apr-6, Q2 jul-sept, Q3 oct-dec, Q4 jan-mar
我有显示“TimeOfCall”列
2013-01-26 07:44:51.000
2014-03-12 13:21:34.000
2015-12-25 16:25:21.000 etc
搜索我尝试使用以下内容的论坛。对于 2015 年 12 月 25 日这一日期,财政年度为 2016 年。我需要它是 2015 年。
case when month(timeofcall) >4
then year(timeofcall) +1
else year(timeofcall)
end as fiscal
理想情况下,我希望输出看起来像
TimeoFCall Fiscal Year
2013-01-26 07:44:51.000 2012-13
2014-03-12 13:21:34.000 2013-12
2015-12-25 16:25:21.000 2015-16
不过这样就够了
TimeoFCall Fiscal Year
2013-01-26 07:44:51.000 2012
2014-03-12 13:21:34.000 2013
2015-12-25 16:25:21.000 2015
谢谢
【问题讨论】:
-
似乎添加“会计年度”列只是“通话时间”中的重复信息,所以如果可能的话,我会避免创建“会计年度”列。相反,每次需要时从“通话时间”计算财政年度可能会更好。如果这对您的服务器很有效,请使用某种与您的数据库分开的缓存。这样,您的数据库就有了您需要的最少数据,而诸如“会计年度”之类的派生数据则存在于其他地方。
-
另外,在您的预期输出中,您的意思是写
2013-14而不是2013-12,不是吗? -
您使用的是哪个 DBMS?
-
日期和时间功能差别很大,请问您的 dbms 是什么? MySQL?赛贝斯? DB2?后格雷斯?甲骨文?微软 SQL 服务器?大地数据? ....
标签: sql