2017-02-14 158 views
-1

我有表名爲PTBV有兩列:Dateptbv varchar(50)[Column 1] varchar(50)如何在SQL Server 2008中將日期時間格式的字符串dd/mm/yy轉換爲日期時間?

我試圖使用CONVERT()函數從存儲在Dateptbv列中的字符串數據中獲取實際的日期時間值。

下面是該列中的數據的例子:

 
"10/01/13" 
"11/01/13" 
"14/01/13" 
"15/01/13" 
"16/01/13" 
"17/01/13" 
"18/01/13" 
"21/01/13" 
"22/01/13" 
"24/01/13" 
"25/01/13" 
"28/01/13" 
"29/01/13" 
"30/01/13" 
"01/02/13" 
"04/02/13" 

注意,此示例中引號是數據的一部分和被存儲在列中。否則,數據以dd/mm/yy格式存儲。

不幸的是,我試過的每個日期樣式都導致了錯誤消息。如何將此數據轉換爲DateTime值?

+0

你使用MySQL或MS SQL Server? (不要標記不涉及的產品。) – jarlh

+0

MS SQL!好的,我不會再次下一次,感謝您的建議 –

+0

圖片已經是日期格式?你真實想要的.add預期的輸出在這裏 –

回答

1

如果我正確理解你的照片,你的列DateptbvVARCHAR(50)並且存儲日期yy/mm/dd包裹在"個字符中。首先:如有可能,改變它!。嘗試將值存儲在適當類型的列中!

嘗試

SELECT CONVERT(DATE,SUBSTRING(Dateptbv,2,8)),3) --3 for dd/mm/yy 

this link查找有關的CONVERT能力的更多細節。

+0

sqlfiddle:http://sqlfiddle.com/#!3/b3eb18/4 –

0

嘗試下面的腳本

SELECT CAST(SUBSTRING(Dateptbv,2,8) AS DATE) 
FROM PTBV 
+0

我得到了這個答案:Msg 241,Level 16,State 1,Line2μ 轉換日期和/或時間從字符串轉換失敗。 –

+0

這是文化依賴,因此是危險的。當涉及日期或時間值時,應該**從不**依靠隱式轉換! – Shnugo

+0

@RobinHocepied您的系統 - 很可能 - 默認情況下期望使用不同的格式。這正是我的意見在我的意見... – Shnugo

相關問題