2014-02-05 23 views
0

我有幾個記錄,我剛剛複製和編輯。交換時間戳的SQL語句

正如你可以在下面的圖片,我有每個FactorType一2的時間戳「2014 ......」,一個以「2100 ......」

enter image description here

我告訴只是將它們更新爲我想要的值,除非我意識到我有時間戳倒退。 2014年日期的記錄我希望有2100年和2100年,我想有2014年。

是否有任何系列的SQL語句,我可以用來實現這一目標?

+1

只需將所有內容放在臨時表中,正確設置時間戳。然後從臨時表中重新加載您的原始表。 – Andrew

回答

0
update e 
set  ValidTo = case when e.ValidTo = '20140204' then '21000101' 
         when e.ValidTo = '21000101' then '20140204' 
        end 
from [central].dbo.EstimateFactors as e 
where [ComponentPart] = 'Labor Cost' and e.ValidTo in ('20140204','21000101') 

編輯:嗯你,不要 「測試」 代碼的數據庫。備份到另一個物化表(select * into EstimateFactors_backup from [central].dbo.EstimateFactors where [ComponentPart] = 'Labor Cost' and ValidTo in ('20140204','21000101')可能工作,或者只是根據合適的數據備份數據庫)。

+0

我想先試試這個測試數據。它可能會或可能不會工作。 –

+0

我曾想過這樣的事情,但我擔心它最終會將列設置爲相同的值。 – Andrew

+0

執行上述編輯中的'選擇*到EstimateFactors_backup ...',然後先對該表進行更新以查看它是如何發生的。 –