2017-06-21 4 views
1

ich eine grundlegende Update-Abfrage geschrieben:Aktualisierungsabfrage, um von „AM“ loszuwerden und „PM“ in string

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

, auf die ich keine wirkliche Fehlermeldung andere als

Microsoft kann 251 Datensätze usw. aufgrund von Typkonvertierungsfehler nicht aktualisieren.

Dort sind 5000 Datensätze enthalten. Ich habe die Datumsspalte als Datum/Uhrzeit und alle meine anderen Spalten (Nicht-Daten) als Kurztext. Die Abfrage aktualisiert nichts in der Tabelle und behält sie vorher. Irgendwelche Ideen?

+1

Wenn 'Time_Updated' vom Typ DATE ist, können Sie' Replace' nicht dagegen verwenden. 'Ersetzen' wirkt nur auf Strings. –

+0

Was kann ich in diesem Fall verwenden? Ich habe auch versucht, das hat nicht funktioniert: Update WA SET WA.Time_Updated = MID (WA.Time_Updated, 1,5) – mkheifetz

+1

Sie können keine Funktionen zur Zeichenfolgenbearbeitung verwenden. Der Wert wird nicht als irgendetwas gespeichert, das wie eine Zeichenfolge aussieht, sondern es ist ein numerischer Wert, der den Offset von einem bestimmten Zeitpunkt darstellt. Versuchen Sie, den tatsächlichen Wert zu ändern (dh, machen Sie eine Nachmittagszeit in die entsprechende Morgenzeit)? Oder versuchen Sie einfach zu ändern, wie die Ausgabe formatiert wird? –

Antwort

0

Kann mit der importierten Struktur umgehen.

Bedenken Sie:

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

Dieser berechnet auf 12,05

So in Abfrage nicht die Rohdaten ändern, berechnen. Verwenden Sie einfach Ihren Feldnamen anstelle des statischen Werts im Ausdruck.

+0

Also, wie mache ich eine Operation auf (in diesem Fall) Division, gibt es mir eine andere Datentypen Fehlermeldung? – mkheifetz

+0

Verstehe nicht. Sagen Sie, dass der vorgeschlagene Ausdruck, der in Dezimalstunden konvertiert werden soll, fehlschlägt? Für mich geht das. Versuchen Sie immer noch, UPDATE auszuführen? Nicht. – June7

0

konvertieren Sie einfach Ihren Text mal Datum Werte:

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

Dann, wenn Sie TimeUpdate Anzeige, formatieren Sie den Wert, wie Sie möchten.