台灣最大程式設計社群網站
線上人數
983
 
會員總數:245228
討論主題:189098
歡迎您免費加入會員
討論區列表 >> MS SQL >> SQL INSER 相同資料日期+1
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
SQL INSER 相同資料日期+1
價值 : 5 QP  點閱數:224 回應數:1

樓主

陳振龍
門外漢
0 1
8 0
發送站內信

各位先進好,小弟我有一資料庫格式轉換問題

以下資料庫 日期天數為使用DATEDIFF(DAY,開始時間,結束時間) 求得
主要是想將A.資料庫格式轉換為B格式 日期與開始時間的日期+1 至結束時間
該怎麼下語法可以做到 B 格式呢?

A.資料庫格式
日期 設備 開始時間 結束時間 日期天數
2019/9/3 A 2019/9/3 2019/9/4 1
2019/9/23 B 2019/9/23 2019/10/4 11
2019/10/4 C 2019/10/4 2019/10/5 1
2019/10/7 D 2019/10/7 2019/11/7 31

B.轉換成以下格式
日期 設備 開始時間 結束時間 日期天數
2019/9/3 A 2019/9/3 2019/9/4 1
2019/9/4 A 2019/9/4 2019/9/4 1
2019/9/23 B 2019/9/23 2019/10/4 11
2019/9/24 B 2019/9/24 2019/10/4 11
2019/9/25 B 2019/9/25 2019/10/4 11
2019/9/26 B 2019/9/26 2019/10/4 11
2019/9/27 B 2019/9/27 2019/10/4 11
2019/9/28 B 2019/9/28 2019/10/4 11
2019/9/29 B 2019/9/29 2019/10/4 11
2019/9/30 B 2019/9/30 2019/10/4 11
2019/10/1 B 2019/10/1 2019/10/4 11
2019/10/2 B 2019/10/2 2019/10/4 11
2019/10/3 B 2019/10/3 2019/10/4 11
2019/10/4 B 2019/10/4 2019/10/4 11
2019/10/4 C 2019/10/4 2019/10/5 1
2019/10/5 C 2019/10/5 2019/10/5 1

搜尋相關Tags的文章: [ SQL INSER 相同資料日期+1 ] ,
本篇文章發表於2019-10-15 17:08
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
alter procedure proc_zz
as
create table #k_test
(日期 datetime,
設備 nvarchar(50) null,
開始時間 datetime,
結束時間 datetime,
日期天數 int)
insert #k_test
select '2019/9/3','A','2019/9/3','2019/9/4',1
insert #k_test
select '2019/9/23','B','2019/9/23','2019/10/4',11
insert #k_test
select '2019/10/4','C','2019/10/4','2019/10/5',1
insert #k_test
select '2019/10/7','D','2019/10/7','2019/11/7',31

select * into #temp from #k_test

DECLARE @設備 NVARCHAR(100)

DECLARE db_cursor CURSOR FOR
SELECT 設備 from #temp
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @設備

WHILE @@FETCH_STATUS = 0
BEGIN


declare @i int= 1

WHILE @i<= (select 日期天數 from #temp where 設備=@設備)
BEGIN
insert #k_test
select 日期,設備,開始時間+@i,結束時間,日期天數 from #temp where 設備=@設備
SET @i = @i + 1
END

FETCH NEXT FROM db_cursor INTO @設備
END
CLOSE db_cursor
DEALLOCATE db_cursor

select * from #k_test order by 設備,開始時間
本篇文章回覆於2019-11-26 13:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.