获取Teradata季度中的天数
我想知道你给出当前日期的时候是季度的哪一天 例如,如果我给出2012年1月25日,那么输出应该是25。因为现在是季度的第25天 类似地,如果我给出2012年1月2日,它应该给出32作为输出 我能得到季度的第一天,但不能得到季度的哪一天 平台是Teradata。日历上没有一个季度的第天选项,这是我正在寻找的。给定日期,我需要知道季度的天数获取Teradata季度中的天数,teradata,Teradata,我想知道你给出当前日期的时候是季度的哪一天 例如,如果我给出2012年1月25日,那么输出应该是25。因为现在是季度的第25天 类似地,如果我给出2012年1月2日,它应该给出32作为输出 我能得到季度的第一天,但不能得到季度的哪一天 平台是Teradata。日历上没有一个季度的第天选项,这是我正在寻找的。给定日期,我需要知道季度的天数 请帮忙。提前谢谢。这是基于日历季度。如果您有某种业务日历,您可以调整案例陈述 select c.*, CASE WHEN MONTH(calendar_date
请帮忙。提前谢谢。这是基于日历季度。如果您有某种业务日历,您可以调整案例陈述
select
c.*,
CASE WHEN MONTH(calendar_date) BETWEEN 1 AND 3
THEN CAST(((calendar_date / 10000) * 10000) + 101 AS DATE)
WHEN MONTH(calendar_date) BETWEEN 4 AND 6
THEN CAST(((calendar_date / 10000) * 10000) + 401 AS DATE)
WHEN MONTH(calendar_date) BETWEEN 7 AND 9
THEN CAST(((calendar_date / 10000) * 10000) + 701 AS DATE)
WHEN MONTH(calendar_date) BETWEEN 10 AND 12
THEN CAST(((calendar_date / 10000) * 10000) + 1001 AS DATE)
END as First_Day_Of_Quarter,
calendar_date - first_day_of_quarter + 1 as Day_Of_Quarter
from
sys_calendar.calendar c
where
year_of_calendar = 2014
order by 1 asc
TRUNC(datecol)
返回季度的第一天,
date1-date2
返回以下时间间隔的天数:
SELECT (datecol - TRUNC(datecol, 'Q')) + 1 AS day_of_quarter
您可以将此计算放入SQL UDF或将其作为列添加到现有日历表中。Teradata的哪个版本?这是标准日历还是商务日历季度?谢谢安德鲁。但是我想用我桌子上的一个日期来代替日历日期,但这并不适用。这就是我试图做的:选择CASE WHEN MONTH(cast(DayDate as date))介于1和3之间,然后cast((cast(DayDate as date))/10000)*+101 as date)WHEN MONTH(cast(DayDate as date))介于4和6之间,然后cast((cast(DayDate as date))/10000)*+401 as date WHEN MONTH(cast(DayDate as date)))介于7和9之间,然后cast((cast)(DayDate as date))/10000)*10000)+701 as date)当月份(cast(DayDate as date))介于10和12之间时,则将((cast(DayDate as date))/10000)*10000)+1001 as date)结束为季度的第一天,DayDate-LU_DayComplete中的第一个季度的第一天+1作为季度的第二天我收到一个错误5407:datetime和Interval的操作无效SQL对我来说无效。when语句中有太多的结束参数:
when-MONTH(cast(DayDate as-date)),介于1和3之间。什么数据类型是DayDate
?谢谢。很好用!第二季度第16天TRUNC()的四舍五入对这个@dnoeth有什么影响?@RobPaller,我也很好奇。我用下面的查询进行了尝试,得到了与case语句完全相同的结果。@RobPaller,TRUNC截断while ROUND:-)@dnoeth,来自:季度(在该季度第2个月的第16天进行了取整)
。不知道那到底在说什么。