预报项目中sqlserver时间的处理

本文详细阐述了如何将实时库中的数据转换到预报库,特别关注时间处理的过程,包括日期加减和月份跨越等操作,确保数据同步的一致性和准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*从实时库中读取数据,实时库报数规则为当前报讯时间为前一时段记录时间,
  因此从实时库同步到预报库时,需要对时间进行处理,同步得到实际报讯时间。
  如:实时库中
                       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, -10, idtm)
					 WHEN DATEPART(dd, idtm) = 1 THEN 
					             DATEADD(dd, 20, DATEADD(mm, DATEDIFF(mm, 0, DATEADD(mm, -1, idtm)), 0))
								 /*得到上月份第一天,然后加上20天*/
					 END)
		WHEN 5 THEN DATEADD(mm, -1, idtm)
		WHEN 7 THEN DATEADD(yy, -1, idtm)
	END AS new_idtm
FROM st_deal_b
ORDER BY id


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值