簡體   English   中英

字符串到DateTime SQL轉換

[英]String to DateTime SQL Conversion

我知道這已被問了好幾次,但我還沒有看到它詢問我的具體情況。

如果文本采用以下格式: 2006年12月30日12:38 AM有沒有辦法將其轉換為實際日期時間。 我並不興奮創建一個函數來使用子字符串等將其解析為日期。

之前的開發人員開發了整個應用程序,並決定將所有日期值存儲在數據庫中作為VARCHAR,可以方便地將它們從以下內容更改為: 2016-12-30 00:38:00Dec 30 2006 12:38AM 這使得它們不可共處(SMH)

只需使用cast()

select cast('Dec 30 2006 12:38AM' as datetime)

是一個SQL小提琴。

- 請試試這個

聲明@var varchar(30)='Dec 30 2006 12:38 AM'選擇轉換(datetime,@ var)

由於您正在轉換字符串(這總是有風險的),如果2012+,我會建議嘗試try_convert()。 如果轉換失敗而不是拋出錯誤,Try_Convert()將返回null。

Select ValidDate = try_convert(datetime,'Dec 30 2006 12:38AM')
      ,BogusDate = try_convert(datetime,'Not a Valid Date String')

返回

ValidDate                BogusDate
2006-12-30 00:38:00.000  NULL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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