[英]SQL Convert VARCHAR Substring to DateTime
編輯:我在美國,日期時間是MDY
我正在使用SQL Server的語法問題。 我有一個文本列,其中列出了一個日期。 看起來像這樣
DATE:05/04/2017 AMOUNT:500
每個記錄中的此列均相同。 我只想專門查看日期部分,所以我使用了基本的SUBSTRING
:
Select
Field1, SUBSTRING(Field2, 6, 10)
From
Table1
Sub SUBSTRING
確實顯示日期,但是它是VARCHAR
格式。
我試圖做一個基本的轉換
Select
Field1, CONVERT(DATETIME, SUBSTRING(Field2, 6, 10))
From
Table1
但是我遇到一個錯誤
消息241,第16層,狀態1,第21行
從字符串轉換日期和/或時間時轉換失敗。
有誰知道我可以如何從日期格式的字符串中成功提取日期,以便將其鏈接到其他表?
在嘗試進行轉換之前,請確保將服務器的DATEFORMAT設置為正確的格式。 由於顯示的樣本數據是2017年5月4日,因此我們無法告訴您是否有MDY或DMY,但您應該能夠從其余數據中找出來。
此外,如果您想確切找到導致轉換錯誤的行,可以使用SQL 2012+中可用的TRY_CONVERT() ,然后調查TRY_CONVERT()結果為NULL的行。
您需要使用dateformat 。
如果使用美國標准mm / dd / yyyy,則為101;如果使用英國dd / mm / yyyy,則為103
declare @temp varchar(30)='DATE:05/04/2017 AMOUNT:500'
Select
CONVERT(DATETIME,SUBSTRING(@temp,6,10),101)
結果:
2017-05-04 00:00:00.000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.