前几天,有人问我个问题,是说teradata中有没可以求某年中有多少个星期,并把每个星期天的日期显示出来。当时还真是懵了,没弄过类似的,问了下其他人,终于明白了,可以通过SYS_CALENDAR.CALENDAR来求(看来以后对于系统的表和库要多看下,哎).SQL 如下:
SELECT *
FROM SYS_CALENDAR.CALENDAR
WHERE (
SUBSTR(CAST(CALENDAR_DATE+1 AS DATE FORMAT 'YYYY-MM-DD'),6,2)='01'
AND SUBSTR(CAST(CALENDAR_DATE+1 AS DATE FORMAT 'YYYY-MM-DD'),
9,2)='01'
) --求得年末
OR (
SUBSTR(CAST(CALENDAR_DATE+1 AS DATE FORMAT 'YYYY-MM-DD'),6,2) IN('01',
'04','07','10')
AND SUBSTR(CAST(CALENDAR_DATE+1 AS DATE FORMAT 'YYYY-MM-DD'),
9,2)='01'
) --求季末
OR (
SUBSTR(CAST(CALENDAR_DATE+1 AS DATE FORMAT 'YYYY-MM-DD'),9,2)='01'
) --求月末
OR (
DAY_OF_WEEK=7
) --求周末
只要把选择条件限制成自己需要的就可以求出来了。
阅读(2996) | 评论(0) | 转发(0) |