加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

预报项目中sqlserver时间的处理

发布时间:2020-12-12 14:58:57 所属栏目:MsSql教程 来源:网络整理
导读:/*从实时库中读取数据,实时库报数规则为当前报讯时间为前一时段记录时间, 因此从实时库同步到预报库时,需要对时间进行处理,同步得到实际报讯时间。 如:实时库中 idtm,sttdrcd 2007-08-10 08:00:00,1 //日 2007-08-01 08:00:00,4 //月 2007-08-01 08:00:
/*从实时库中读取数据,实时库报数规则为当前报讯时间为前一时段记录时间,
  因此从实时库同步到预报库时,需要对时间进行处理,同步得到实际报讯时间。
  如:实时库中
                       idtm,sttdrcd
	 2007-08-10 08:00:00,1 //日
	 2007-08-01 08:00:00,4 //月
         2007-08-01 08:00:00,5 //旬
	 同步时,预报库为
	               idtm,sttdrcd
	 2007-08-09 08:00:00,1
	 2007-07-21 08:00:00,4
         2007-07-01 08:00:00,5
*/
SELECT
        id,idtm as old_idtm,sttdrcd,CASE sttdrcd
		WHEN 1 THEN DATEADD(dd,-1,idtm)
		WHEN 4 THEN (CASE 
					 WHEN DATEPART(dd,idtm) = 11 THEN DATEADD(dd,-10,idtm)
					 WHEN DATEPART(dd,idtm) = 21 THEN DATEADD(dd,idtm) = 1 THEN 
					             DATEADD(dd,20,DATEADD(mm,DATEDIFF(mm,idtm)),0))
								 /*得到上月份第一天,然后加上20天*/
					 END)
		WHEN 5 THEN DATEADD(mm,idtm)
		WHEN 7 THEN DATEADD(yy,idtm)
	END AS new_idtm
FROM st_deal_b
ORDER BY id

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读