Wenn Sie sagen, dass Sie ein Datum haben
dd-mm-yyyy im Format gespeichert
sind Sie sicher, dass Sie verwirren nicht mit der Art und Weise, dass Ihre UI-Datenbank es Ihnen präsentieren oder speichern Sie das Datum tatsächlich in diesem Format (indem Sie es beispielsweise in eine Textdatei oder eine Varchar-Spalte anstelle einer DateTime-Spalte schreiben)?
Der Grund warum ich frage ist, dass, wenn ein Datum in einer Datenbank als Datum gespeichert wird, CF es als Datum darstellt, unabhängig davon, wie es zB in SQL Management Studio erscheint. Wenn dies der Fall ist, können Sie die Teile einfach mit DatePart ("datepart", "date") trennen. Wenn Sie ein Datum in einem Textformat haben (z. B. aus einer Formularübergabe oder weil es als einfacher Text gespeichert wurde), sollten Sie es in der Lage sein, es mit LSParseDateTime() in ein DateTime-Objekt zu analysieren und dann das DatePart (...) Methode, um die Teile zu trennen.
Siehe http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=functions_c-d_30.html
(sorry, kann die URL in der anderen Funktion Post wegen des Mangels an SO Punkten!)
für die Dokumentation zu diesem Thema.
Wenn Sie SQL2005 (oder höher) verwenden, können Sie berechnete Spalten im Datumsfeld erstellen, um Tag, Jahr und Monat auf Datenbankebene zu teilen. Ich dachte, ich würde das erwähnen, nur für den Fall, dass es sich als nützlich erweist.
Steve
+1 fair genug, datepart() war die andere Möglichkeit, die ich in Betracht gezogen hatte.Ich vermute, das Problem des Fragestellers ist eine Ungewohnheit mit CF und dass es eine beträchtliche Anzahl von eingebauten Datumsmanipulationsfunktionen hat - daher der Regex-Ansatz. – orangepips