我有一個列導入到Azure SQL DB
,該列應該僅由日期組成,但當然包含錯誤。tsql在可能的情況下將字符串轉換爲日期
在TSQL
我想這樣做:轉換爲日期,如果可能,否則爲空。
有誰知道一個語句來測試字符串到日期的可轉換性嗎?
我有一個列導入到Azure SQL DB
,該列應該僅由日期組成,但當然包含錯誤。tsql在可能的情況下將字符串轉換爲日期
在TSQL
我想這樣做:轉換爲日期,如果可能,否則爲空。
有誰知道一個語句來測試字符串到日期的可轉換性嗎?
你可以使用TRY_PARSE
:
返回表達式的結果,translat編輯到所請求的數據類型,如果轉換失敗,則返回null。僅適用於從字符串轉換爲日期/時間和數字類型的
TRY_PARSE
。
SELECT TRY_PARSE('20129901' AS DATE)
-- NULL
Additionaly您可以添加文化:
SELECT TRY_PARSE('10/25/2015' AS DATE USING 'en-US')
和進口:
INSERT INTO target_table(date_column, ...)
SELECT TRY_PARSE(date_string_column AS DATE) ...
FROM source_table
...
謝謝,這就是我一直在尋找 –
使用TryCast或ISDATE
select
try_Cast('test' as date)
select try_Cast('4' as date)
select case when ISDATE('test')=1 then cast('test' as date) else null end
如果表達式不是預期的格式..ie TryCast會失敗,如果表達的顯式轉換是不允許
select
try_cast(4 as xml)
select try_Cast(4 as date)
這甚至更好謝謝 –
你需要接受任何一個答案可以幫助你,其他明智的這盆會顯示爲未答覆。如果您對以下任何答案不滿意,則可能需要更新問題關於什麼不是通過下面的答案解決 – TheGameiswar