我有一個名爲「訪問報告」的表。報告中有一列名爲「花費的小時數」,我想對其進行更改。SQL消除文本並保留數字,以小時爲單位捕獲數字
由於從其他來源導入的數據,「花費小時數」的一些記錄記錄爲例如「1小時」,「2分鐘」,「3天」。我想消除文本並保留號碼,以小時爲單位捕獲號碼。我該怎麼做,因爲有三個不同的單位?
這是我的代碼來標識包含「小時」,「分」,「天」,甚至像「小時」,「分」的記錄,「D」等
SELECT *
FROM [VISIT REPORT]
WHERE ((([VISIT REPORT].[Hours Spent]) Like '*h*' Or ([VISIT REPORT].[Hours Spent]) Like '*m*' Or ([VISIT REPORT].[Hours Spent]) Like '*d*'));
我卡在這裏。我嘗試添加這個代碼,我相信這是錯誤的,因爲它不記錄三個不同的單位,幾小時,幾分鐘和幾天。
UPDATE VISIT REPORT SET [Hours Spent] = Val([Hours Spent])
現在我分開的問題分爲三個查詢,並開始了與一個查詢首先修復了小時的字段。 - 有用!
首先創建一個模塊,
Function RemoveAlphas(ByVal AlphaNum As Variant)
Dim Clean As String
Dim Pos, A_Char$
Pos = 1
If IsNull(AlphaNum) Then Exit Function
For Pos = 1 To Len(AlphaNum)
A_Char$ = Mid(AlphaNum, Pos, 1)
If A_Char$ >= "0" And A_Char$ <= "9" Then
Clean$ = Clean$ + A_Char$
End If
Next Pos
RemoveAlphas = Clean$
End Function
然後插入該SQL,
UPDATE [VISIT REPORT] SET [VISIT REPORT].[Hours Spent] = "RemoveAlphas[Hours Spent]"
WHERE ((([VISIT REPORT].[Hours Spent]) Like '*h*'));
仍在試圖找出如何解決分鐘,天等領域。
爲什麼不使用單獨的查詢,一個用於「小時」,一個用於「分鐘」,一個用於「日」? – Pang
嗨龐。我可以爲包含「小時」,「分鐘」和「日」的識別做到這一點。但是,我不知道如何進行轉換和刪除文本。你有什麼主意嗎?謝謝Pang! – APPLEICECREAM
我正在使用Microsoft Access 2013. – APPLEICECREAM