2017-06-21 88 views
1

擺脫「AM」和「PM」的我寫了一個基本的更新查詢:更新查詢字符串

Update WA SET WA.Time_Updated = Replace(Time_Updated, 'PM', ' '); 

,而我沒有得到任何其他真正的錯誤信息比

由於類型轉換錯誤,Microsoft無法更新251記錄等

那裏有5000條記錄。我有日期列作爲日期/時間和我的所有其他列(非日期)作爲短文本。該查詢只是不更新​​表中的任何內容,並保持原來的狀態。有任何想法嗎?

+1

如果'Time_Updated'類型爲DATE,則不能對其使用'Replace'。 'Replace'只能在字符串上操作。 –

+0

在這種情況下我可以使用什麼?我也試過,這是行不通的:更新WA SET WA.Time_Updated = MID(WA.Time_Updated,1,5) – mkheifetz

+1

你不能使用任何字符串操作函數。該值不會被存儲爲任何看起來像字符串的東西,而是一個代表特定時間點偏移量的數值。你是否試圖改變實際價值(也就是說,讓下午時間進入相應的早晨時間)?或者你只是想改變輸出的格式? –

回答

0

可以處理導入的結構。

考慮:

Hour("12:03:00 PM") + Minute("12:03:00 PM")/60 + Second("12:03:00 PM")/3600

這將計算到12.05

所以不改變原始數據,在查詢計算。只需使用您的字段名稱代替表達式中的靜態值即可。

+0

那麼我該如何對它進行操作(在這種情況下)劃分,它給了我一個不同的數據類型錯誤消息? – mkheifetz

+0

不明白。您是否將建議的表達式轉換爲十進制小時失敗?這個對我有用。你還在嘗試運行UPDATE嗎?別。 – June7

0

只是轉換文本次日期值:

Select *, TimeValue([Time_Updated]) As TimeUpdated From WA 

然後,當你顯示TimeUpdate,只要你喜歡格式化值。