我試圖從存儲爲nvarchar(max)
的列中查詢最小日期時間。這個查詢有一些棘手的事情(至少對我來說)使用SQL Server 2008從字符串中提取最小時間戳
在每條記錄中不止存儲日期。
日期時間的位置是相對的 - 雖然它總是出現在格式
**(DD-MM-YY at HH:MM PM
有存儲在每個記錄多個日期時間 - 所以我不僅需要找到並捕獲那裏是一個datetime,我需要找到記錄中的最短日期時間
我不能只是改變數據存儲的格式 - 有十多年的信息以這種方式存儲。
列被稱爲 'hdresp' - 這裏是樣本數據:
**(03-APR-14在上午09點44分發送的電子郵件) - 比利鮑伯鬆:升級訂購。 **(14年2月14日下午4點16分發送電子郵件) - Sammy Richards:如果您認爲這有助於升級,我可以再給你一個電纜。如果你想要走這條路線,我必須要求你提交另一個新硬件請求。 **(04年4月2日下午3點17分發送電子郵件) - 保羅史密斯:邁克爾當你有一秒鐘時,在我的辦公桌旁邊停下來。
- 我想直到結束是標識
02-Apr-14 at 3:17 PM
作爲最小時間並將其轉換爲YYYY-MM-DD HH:MM:SS
查詢 - 例如2014-04-02 15:17:00
您可以用很容易找到日期/時間模式PATINDEX功能。但是,爲了在一條記錄中找到其中的一部分,您將不得不使用功能 – cha
如果您可以假設第一個找到的模式最小(即它是電子郵件鏈中的第一封電子郵件),那麼您可以執行它使用一個簡單的更新SQL使用PATINDEX函數 – cha
感謝您的及時響應! PATINDEX函數是不會返回日期時間的位置而不是實際值? – tubeysocks