2013-04-04 89 views
1

我在將varchar類型轉換爲日期類型時遇到了一些麻煩。
在SQL-server 2008中,我有一個VARCHAR類型的日期類型不同的表。
例如:
將不同的varchar日期轉換爲日期

DDMMYYYY (05032013)<br/> 
MMDDYYYY (03052013)<br/> 
YYYYMMDD (20130305)<br/> 
... 

我必須將這些不同的字符串類型轉換成鍵入「日期」使用SQL查詢。 任何建議如何我可以做到這一點?
這是我的記錄:

TYPE || FORMAT 
____________________ 
DDMMYYYY||05032013 
MMDDYYYY||03052013 
YYYYMMDD||20130305 
+0

將如何確定給定的日期是否在** ** DDMMYYYY **或** MMDDYYYY **或** YYYYMMDD。如果你能回答這個問題,我們會確保你會得到答案。 **:)**好問題+1 – Luv 2013-04-04 11:40:15

回答

0

試試這個

SELECT case when type='DDMMYYYY' then convert(date,STUFF(STUFF('05032013',3,0,'-'),6,0,'-'),105) when type='MMDDYYYY' then cast(substring('03052013',5,4)+'-'+substring('03052013',0,3)+'-'+substring('03052013',3,2) as date) when type='YYYYMMDD' then cast(STUFF(STUFF('20130305',5,0,'-'),8,0,'-') as date) end

0

如果你能找到的每一行,其日期格式,你可以將它們轉換爲日期類型。否則我不認爲這是完全正確的。例如,您無法爲以下記錄實施邏輯 - (03052013)可以是2013-05-03或2013-03-05。

+0

在我的表格中,我有一個標識格式的列和另一個格式爲日期的列。這是必須轉換爲「日期」類型的日期。 – Jelle 2013-04-04 11:42:37

+0

給我們提供表格和一些記錄的DataStructure。也給我們代碼的含義。 – Luv 2013-04-04 11:44:54

+0

查看我的問題的正確格式的審查。 – Jelle 2013-04-04 12:13:09