2017-06-21 6 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を表示したときに、好きなように値をフォーマットします。