我在我的數據庫中有一列,當前是一個varchar。數據看起來像這樣:解析SQL中的日期
Thu, 4 Jul 2013 09:18:24
Thu, 11 Jul 2013 10:07:01
Tue, 28 Jan 2014 11:38:37
Fri, 26 Jul 2013 14:13:42
我希望能夠將其轉換爲日期,以便我可以獲取最新的記錄。
我在我的數據庫中有一列,當前是一個varchar。數據看起來像這樣:解析SQL中的日期
Thu, 4 Jul 2013 09:18:24
Thu, 11 Jul 2013 10:07:01
Tue, 28 Jan 2014 11:38:37
Fri, 26 Jul 2013 14:13:42
我希望能夠將其轉換爲日期,以便我可以獲取最新的記錄。
的SQL Server 2012起,您可以使用TRY_PARSE
:
-- If the culture argument isn't provided, the language of current session is used.
SELECT TRY_PARSE('Thu, 4 Jul 2013 09:18:24' AS datetime2) AS 'datetime2';
TRY_PARSE:返回表達式的結果,轉換爲所請求的數據 類型,或空如果轉換失敗。
假設字符串總是以三個字符的一天文字後跟一個逗號和空格,你可以例如使用substring()
砍掉開始,然後使用cast()
將字符串轉換成正確的日期時間,像這樣開頭:
cast(substring(your_date_col, 6, len(your_date_col)) as datetime)
還有很多其他的方法可以做到這一點;如果您想了解更多信息,請閱讀演員表/轉換和字符串函數。 (並考慮使用try_cast/try_convert)。
請描述您最近的努力及其結果。 –
您將需要使用CONVERT(),並且需要將日期字符串與相應的日期值相匹配。 SQL服務器比Oracle更難轉換日期。 – Doug
@Doug,Mitch小麥的答案如下,使它看起來很容易... –