2010-01-06 76 views
0

我想將iI設置的varchar值轉換爲日期時間值。我想將數據庫的行加載到另一個數據庫中,但轉換不順利。如何將此varchar值轉換爲日期時間

這是我的查詢:

select Krant 
     , cast(jaar as varchar(4))+'-' 
      +RIGHT('0'+cast(maand as varchar(2)),2)+'-' 
      +RIGHT('0'+cast(dag as varchar(2)),2) as datum 
     , Inhoud as artikel 
     , LEN(Inhoud)-LEN(Replace(Inhoud,' ','')) as numwords 
     , 'Goirle' as vestiging 
from [Sitecore_Bibliotheekmb_Krantenknipsel].[dbo].[KRANGOI] 

演員到基準必須是一個datetime值,但我沒有得到它正常工作。當我試着去日期時間,它給了我一個out of range例外。

這些都是這個查詢的結果:

alt text http://94.100.115.48/837450001-837500000/837478801-837478900/837478868_5_dE_7.jpeg

我想要的「原點」字段是一個日期時間字段具有相同的值,但在DATETIME格式。任何人都可以幫助我:)。

感謝,

尤尼斯

+0

當我試圖施放日期時間它給了我一個超出範圍異常 – Younes 2010-01-06 08:03:21

回答

1

使用此:

select Krant, cast(cast(jaar as varchar(4))+'-' 
    +RIGHT('0'+cast(maand as varchar(2)),2)+'-' 
    +RIGHT('0'+cast(dag as varchar(2)),2) as datetime) as datum, 
    Inhoud as artikel, 
    LEN(Inhoud)-LEN(Replace(Inhoud,' ','')) as numwords, 
    'Goirle' as vestiging 
from [Sitecore_Bibliotheekmb_Krantenknipsel].[dbo].[KRANGOI] 
+0

這給我以下異常: 消息242,級別16,狀態3,行1 將varchar數據類型轉換爲日期時間數據類型導致超出範圍的值。 – Younes 2010-01-06 08:06:52

+0

雖然這可能會導致數據不完整。 – user31571 2010-01-06 16:56:11

0

你是不是鑄造VARCHAR處理爲datetime

CAST and CONVERT on MSDN

你可以試試這個:

SELECT CAST(('2010' + '-' + '01' + '-' + '06') AS DATETIME) 
+0

在這篇文章中,我只是顯示我的查詢+結果。我試圖施放,但是射程超出範圍:)。 – Younes 2010-01-06 08:04:20

+0

是演員正在工作,現在是什麼?你已經看到了我的查詢+結果,這不是我的問題的答案。 – Younes 2010-01-06 08:11:15

+1

你在這些jaar,maand,dag字段中必須有一些損壞日期? – user31571 2010-01-06 08:12:15

0

如果您的日期早於1753,一個簡單的日期時間類型是不夠的。對於這一點,你需要使用SQL Server 2008中

還要檢查maandDAG的所有值都是有效的日,月推出了DATETIME2數據類型。