查看上一个主题 :: 查看下一个主题
|
作者 |
信息 |
sunilmfs
新的用户

已加入:2010年11月9日 帖子:20 地点:海得拉巴
|
|
|
|
when I enter 日期 or current date, I need the first 天 of that quarter..
请帮助 |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
|
|
发布时最好使用有意义的标题!
主题已编辑 |
|
回到顶部 |
|
 |
比尔·伍德格
主持人荣誉
加入时间:2011年3月9日 帖子:7311 位置:矩阵内部
|
|
|
|
将四分之一毫米存放在某处。
使用以下方法将ddmm与存储的ddmm进行比较>, <, 管他呢。适合的日期是该日期的该季度的第一天。 |
|
回到顶部 |
|
 |
dbzTHEdinosauer
全球主持人

已加入:2006年10月20日 帖子:6967 位置:瓷宝座
|
|
|
|
码: |
使用工作表(WRKDATE)
AS(
SELECT 日期(SUBSTR(CHAR(YEAR(CURRENT_DATE)),1,4)
||SUBSTR('-01',1,3)||SUBSTR('-01',1,3)
)
从SYSIBM.SYSDUMMY1
UNION ALL
SELECT 日期(SUBSTR(CHAR(YEAR(CURRENT_DATE)),1,4)
|| SUBSTR('-04',1,3)||SUBSTR('-01',1,3)
)
从SYSIBM.SYSDUMMY1
UNION ALL
SELECT 日期(SUBSTR(CHAR(YEAR(CURRENT_DATE)),1,4)
|| SUBSTR('-07',1,3)||SUBSTR('-01',1,3)
)
从SYSIBM.SYSDUMMY1
UNION ALL
SELECT 日期(SUBSTR(CHAR(YEAR(CURRENT_DATE)),1,4)
|| SUBSTR('-10',1,3)||SUBSTR('-01',1,3)
)
从SYSIBM.SYSDUMMY1
)
选择 工作日
从WORKTAB
WHERE 25美分硬币(WRKDATE) = 25美分硬币(CURRENT_TIMESTAMP)
;
|
将您的主机变量替换为QUARTER(CURRENT_TIMESTAMP) |
|
回到顶部 |
|
 |
sunilmfs
新的用户

已加入:2010年11月9日 帖子:20 地点:海得拉巴
|
|
|
|
谢谢迪克
enrico:从下一次开始,我会做的很好 |
|
回到顶部 |
|
 |
陀螺仪
活跃的成员
.jpg)
已加入:2009年7月31日 帖子:565 地点:班加罗尔
|
|
|
|
或者...不使用with子句
码: |
选择
案件
WHEN 25美分硬币(CURRENT 日期) = 1 THEN 日期(STRIP(CHAR(YEAR(CURRENT 日期)))||CHAR('-01-01'))
WHEN 25美分硬币(CURRENT 日期) = 2 THEN 日期(STRIP(CHAR(YEAR(CURRENT 日期)))||CHAR('-04-01'))
WHEN 25美分硬币(CURRENT 日期) = 3 THEN 日期(STRIP(CHAR(YEAR(CURRENT 日期)))||CHAR('-07-01'))
WHEN 25美分硬币(CURRENT 日期) = 4 THEN 日期(STRIP(CHAR(YEAR(CURRENT 日期)))||CHAR('-10-01'))
结束
从SYSIBM.SYSDUMMY1
;
|
|
|
回到顶部 |
|
 |
盖伊
高级会员
已加入:2009年8月11日 帖子:1281 地点:比利时
|
|
|
|
码: |
Datecol-(day(datecol) -1) 天s - mod( month(datecol) - 1,3) months |
这与
码: |
Datecol-mod( month(datecol) - 1,3) months - (day(datecol) -1) 天s |
|
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
|
|
好吧,我会咬...
那类似的东西呢
码: |
...
SELECT 日期(CHAR(YEAR(<the date>)),1,4) ||
CHAR('-0') ||
CHAR(QUARTER(<the date>)) ||
CHAR('-01')
)
FROM <适当的表>
... |
只是逻辑,语法可能会发臭
如果我愿意,可以随时抨击我 公然地 错误
(*) 我通常有 强大 算法解决方案的偏好
季度=(月-1)%4 +1
其中%是整数除法
或如果整数除法运算符不可用
季度= INT((月-1)/ 4)+ 1
其中/是标准除法,INT返回整数部分 |
|
回到顶部 |
|
 |
sunilmfs
新的用户

已加入:2010年11月9日 帖子:20 地点:海得拉巴
|
|
|
|
巴拉特越来越错误
命令===>滚动===> CSR
选择00670078
案例00680078
当季度(CURRENT 日期) = 1 THEN 00690078
日期(STRIP(CHAR(YEAR(CURRENT 日期)))||CHAR('-01-01')) 00700078
当季度(CURRENT 日期) = 2 THEN 00710078
日期(STRIP(CHAR(YEAR(CURRENT 日期)))||CHAR('-04-01')) 00720078
当季度(CURRENT 日期) = 3 THEN 00730078
日期(STRIP(CHAR(YEAR(CURRENT 日期)))||CHAR('-07-01')) 00740078
当季度(CURRENT 日期) = 4 THEN 00750078
日期(STRIP(CHAR(YEAR(CURRENT 日期)))||CHAR('-10-01')) 00760078
完00770078
从SYSIBM.SYSDUMMY1 00780078
; 00790078
--------- + --------- + --------- + --------- + --------- + --------- + --------- + --------- +
DSNT408I SQLCODE = -199,错误:非法使用关键字大小写。代币
<END-OF-STATEMENT>QUERYNO具有组顺序相交的位置
预期 |
|
回到顶部 |
|
 |
dbzTHEdinosauer
全球主持人

已加入:2006年10月20日 帖子:6967 位置:瓷宝座
|
|
|
|
盖伊
您所说的是正确的,但我不了解与此主题的相关性。
陀螺仪,
你的sql比我的好得多。
苏尼尔
陀螺仪的sql对我有用。
您的,但是,需要进行一些编辑。
删除pg / ln数字。
并在发布时学习使用BB代码。
否则,您的选择有效。
码: |
选择 00670078
案件 00680078
WHEN 25美分硬币(CURRENT 日期) = 1 THEN 00690078
日期(STRIP(CHAR(YEAR(CURRENT 日期)))||CHAR('-01-01')) 00700078
WHEN 25美分硬币(CURRENT 日期) = 2 THEN 00710078
日期(STRIP(CHAR(YEAR(CURRENT 日期)))||CHAR('-04-01')) 00720078
WHEN 25美分硬币(CURRENT 日期) = 3 THEN 00730078
日期(STRIP(CHAR(YEAR(CURRENT 日期)))||CHAR('-07-01')) 00740078
WHEN 25美分硬币(CURRENT 日期) = 4 THEN 00750078
日期(STRIP(CHAR(YEAR(CURRENT 日期)))||CHAR('-10-01')) 00760078
结束 00770078
从SYSIBM.SYSDUMMY1 00780078
; 00790078
|
|
|
回到顶部 |
|
 |
sunilmfs
新的用户

已加入:2010年11月9日 帖子:20 地点:海得拉巴
|
|
|
|
嗨,迪克...
请让我知道BB代码。 |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
回到顶部 |
|
 |
sunilmfs
新的用户

已加入:2010年11月9日 帖子:20 地点:海得拉巴
|
|
|
|
恩里科:知道了。
巴拉特:查询工作正常...谢谢 |
|
回到顶部 |
|
 |
盖伊
高级会员
已加入:2009年8月11日 帖子:1281 地点:比利时
|
|
|
|
dbzTHEdinosauer写道: |
盖伊
您所说的是正确的,但我不了解与此主题的相关性。
|
Datecol-(day(datecol) -1) 天s - mod( month(datecol) - 1,3) months将返回任何给定日期间隔的季度的第一天,就像该线程中的其他解决方案一样
恩里科:
不是第二季度的开始日期2011-02-01
不是2011年3月3日的开始日期
2011年4月1日不是第四季度的开始日期 |
|
回到顶部 |
|
 |
dbzTHEdinosauer
全球主持人

已加入:2006年10月20日 帖子:6967 位置:瓷宝座
|
|
|
|
对于我的db2版本,我必须从以下位置修改sql:
码: |
Datecol-(day(datecol) -1) 天s - mod( month(datecol) - 1,3) months |
到:(必须将MOD函数中的3转换为整数)
码: |
CURRENT 日期 - (day(CURRENT 日期) -1) 天s - mod( month(CURRENT 日期) - 1,int(3)) months
|
实际上,在使用文字或主机变量时,必须添加其他CAST函数:
码: |
日期('2011-01-01') - (DAY(DATE('2011-01-01')) -1) 天S - MOD( MONTH(DATE('2011-01-01')) - 1,INT(3)) MONTHS
|
仍然,
效果很好,
并且是3个SQL中较好的一个。
Thx 盖伊 |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
|
|
引用: |
恩里科:
不是第二季度的开始日期2011-02-01
不是2011年3月3日的开始日期
2011年4月1日不是第四季度的开始日期 |
可恶的脑屁!
为了保持术语的正确性,我也应该写
代替
引用: |
季度=(月-1)%4 +1
其中%是整数除法
或如果整数除法运算符不可用
季度= INT((月-1)/ 4)+ 1
其中/是标准除法,INT返回整数部分 |
引用: |
季度第一个月=(月-1)%4 +1
其中%是整数除法
或如果整数除法运算符不可用
季度第一个月= INT((month-1)/ 4)+ 1
其中/是标准除法,INT返回整数部分 |
|
|
回到顶部 |
|
 |
|