2016-04-29 59 views
-1

我有2個表:表1和表2變化DATEFORMAT而從1個表中插入到另一個

其中一列是date列在表1中,其中包含像數據:

01/07/2016 00:23:45 

我從第一臺拉取數據的第二表,但對我的挑戰是,我試圖插入該數值到第二個表:

07/01/2016 12:23:45 AM 

,或者至少想:

07/01/2016 00:23:45 

有人可以幫我。我如何在SQL Server 2008中執行此操作?

+1

看起來像你正在使用varchar數據類型來存儲日期時間,對嗎? – FLICKER

+3

如果是日期,那麼格式是(並且應該是)不相關的。這只是一個顯示問題。如果你將日期存儲爲字符串('VARCHAR'),那麼這是一個很大的錯誤,而這只是你可能看到的問題的開始。由於你沒有提供表結構,所以沒有辦法知道。 –

+0

@ FLICKER:數據正在通過客戶端通過ETL加載。我沒有任何訪問權限。基於哪裏的條件我正在加載數據到其他表格,我需要改變日期的格式。 – shan

回答

1

假設你沒有第二次在你的價值觀,你可以使用下面的轉換

declare @dt varchar(100) = '01/07/2016 17:23:45' 

select LEFT(@dt, 10) + ' ' + replace(right(CONVERT(varchar, cast(@dt as datetime), 109), 13), ':000', ' ') 

會導致這個

01/07/2016 5:23:45 PM 

,併爲這個數據'01/07/2016 07:23 45'

將導致

01/07/2016 7:23:45 AM 

我沒有找到任何使用CONVERT函數的直接方式

+0

非常感謝....快樂學習 – shan