簡體   English   中英

SQL將VARCHAR子字符串轉換為DateTime

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM