Konvertieren "JJJJMMTT" format-string zu Datum in MDX?
Liebe Grüße ALSO Jungs,
Habe ich einige Problem mit der Anwendung Zeitpunkt bezogene Funktionen auf der "JJJJMMTT" format-string in MDX. Zum Beispiel, wenn ich diese Abfrage unter:
with
member foo as WEEKDay("2013-03-21")
select
foo on 0
from
[Some Cube]
Wird es richtig ausgegeben "5" für " foo " in SSMS. Aber wenn ich die zweite Zeile:
member foo as WEEKDay("20130321")
Wird, wird es leider werfen "type mismatch" Fehler.
Also, was ich tun möchte, ist, dass die Konvertierung von der Zeichenfolge auf einige erkennbaren format " Datum, und dann die Anwendung der Funktionen auf. Ideen für die einfachste Weg, z.B. mit den vorhandenen Funktionen?
Bitte beachten Sie, dass die Zeichenfolge tatsächlich eingegeben von Mitgliedern in jedem cube, wo die MDX ausgeführt wird. Also der format-string worden sein könnte, erkennbar, z.B. "YYYY-MM-DD". So hart codierten string umwandeln Algorithmus nicht ok sein kann.
Vielen Dank im Voraus!
Cheers
InformationsquelleAutor bigbearzhu | 2013-03-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Thema ist zu alt, aber vielleicht kann jemand helfen. Technik ist ziemlich Brutal, aber skalierbar.
Hinzufügen supportable Formate zu Ende, bevor "Nicht" verwenden Sie einen beliebigen input-string statt
"20130321"
.Aber der einfachste Weg ist die Verwendung einer anderen Ebene (z.B. SQL-Funktion CONVERT) vor dem einsetzen der MDX-wenn möglich, sichere Sache.
InformationsquelleAutor Alex Peshik
Die vba-Funktion
isDate
können verwendet werden, um zu überprüfen, ob das übergebene Datum ist gut formatiert. Wenn nicht, dann formatieren Sie es zuerst mitdateserial
undmid
und verwenden Sie Sie.BEARBEITEN
Den obigen code kann geändert werden, um Platz für andere Prüfungen wie
MMDDYYYY
oderDDMMYYYY
, aber die Sache ist die, es unmöglich ist, in vielen Fällen für den Motor zu intuitiv wissen, ob der übergebene Wert wird inYYYYMMDDDD
oderDDMMYYYY
oderMMDDYYYY
. Nehmen Sie zum Beispiel die Zeichenfolge1111111
Dies könnte leicht in ein beliebiges Datum-format, wie es ist ein gültiges Datum wie auch immer Sie es brechen.
Ich würde vorschlagen, dass Sie ein weiteres Mitglied für das speichern der Datum-format als auch. So mit Blick auf dieses Mitglied, string geparst werden können.
z.B.
InformationsquelleAutor SouravA