获取Teradata季度中的天数

获取Teradata季度中的天数,teradata,Teradata,我想知道你给出当前日期的时候是季度的哪一天 例如,如果我给出2012年1月25日,那么输出应该是25。因为现在是季度的第25天 类似地,如果我给出2012年1月2日,它应该给出32作为输出 我能得到季度的第一天,但不能得到季度的哪一天 平台是Teradata。日历上没有一个季度的第天选项,这是我正在寻找的。给定日期,我需要知道季度的天数 请帮忙。提前谢谢。这是基于日历季度。如果您有某种业务日历,您可以调整案例陈述 select c.*, CASE WHEN MONTH(calendar_date

我想知道你给出当前日期的时候是季度的哪一天

例如,如果我给出2012年1月25日,那么输出应该是25。因为现在是季度的第25天

类似地,如果我给出2012年1月2日,它应该给出32作为输出

我能得到季度的第一天,但不能得到季度的哪一天

平台是Teradata。日历上没有一个季度的第天选项,这是我正在寻找的。给定日期,我需要知道季度的天数


请帮忙。提前谢谢。

这是基于日历季度。如果您有某种业务日历,您可以调整案例陈述

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天进行了取整)
。不知道那到底在说什么。