Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Nach Datum sortieren mit Konvertiertem Datumsfeld
zurück: SQL - Dynamische Spalten oder verkettete Ausgaben weiter: Access 2010 und SQLServer 2012 Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Werwolfli
Im Profil kannst Du frei den Rang ändern


Verfasst am:
05. Okt 2011, 09:39
Rufname:

Nach Datum sortieren mit Konvertiertem Datumsfeld - Nach Datum sortieren mit Konvertiertem Datumsfeld

Nach oben
       Version: Office 2007

Hallo zusammen

Ich möchte nach einem Datumsfeld sortieren, welches ich konvertiert habe mit CONVERT(varchar, Scan_Zeit, 104) AS Scan_Datum

Die Konvertierung musste ich machen, dass ich aus dem Feld Scan_Zeit nur das Datum ohne Uhrzeit benötige.

Wenn ich nun sortiere, dann sortiert er immer nur nach den ersten beiden Zahlen im Datumsfeld. Also von 31 runter bis 01, jedoch die Monate durcheinander.

Wie muss ich das korrekt machen?

Danke im Voraus!

Grüsse

Werwolf
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
05. Okt 2011, 13:22
Rufname:


AW: Nach Datum sortieren mit Konvertiertem Datumsfeld - AW: Nach Datum sortieren mit Konvertiertem Datumsfeld

Nach oben
       Version: Office 2007

Hallo,

es gibt immer einen Unterschied zwischen der Verarbeitung und der Ausgabe. In der Feldliste von SELECT steht die Ausgabe, da gehört das CONVERT hinein. In der ORDER BY Klausel dagegen einfach das Datumsfeld.

Gruß

Christian
Werwolfli
Im Profil kannst Du frei den Rang ändern


Verfasst am:
05. Okt 2011, 13:25
Rufname:

AW: Nach Datum sortieren mit Konvertiertem Datumsfeld - AW: Nach Datum sortieren mit Konvertiertem Datumsfeld

Nach oben
       Version: Office 2007

Hallo Christian

Das Datumsfeld, welches vorhanden ist, ist im Format DATETIME. Pro Tag habe ich natürlich x-hundert Einträge. Ich muss noch pro Tag gruppieren.

Darum möchte ich ja nach dem konvertierten Wert gruppieren, da ich hier nur den Tag habe.

Gruss

Werwolf
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
05. Okt 2011, 13:33
Rufname:

AW: Nach Datum sortieren mit Konvertiertem Datumsfeld - AW: Nach Datum sortieren mit Konvertiertem Datumsfeld

Nach oben
       Version: Office 2007

Hallo,

wenn Du die Uhrzeit abschneiden willst (wobei ich dafür keinen Sinn sehe, denn wenn Du nach Tag sortierst, spielt die Uhrzeit ja keine Rolle), kannst Du den Wert in eine Dezimalzahl konvertieren und den Nachkommateil abschneiden und dann wieder in smalldatetime zurückkonvertieren.

Wenn Du in varchar/nvarchar konvertierst, erhältst Du natürlich auch nur Stringsortierung.

Von gruppieren hast Du nicht gesprochen, aber Du kannst ja auch per String korrekt sortieren, wenn Du im Format YYYYMMDD konvertierst (mit den entsprechenden führenden Nullen).

Ganz ohne Beispiele und Deinem SQL-Befehl ist das alles nur vage.

Gruß

Christian
Werwolfli
Im Profil kannst Du frei den Rang ändern


Verfasst am:
06. Okt 2011, 12:45
Rufname:


AW: Nach Datum sortieren mit Konvertiertem Datumsfeld - AW: Nach Datum sortieren mit Konvertiertem Datumsfeld

Nach oben
       Version: Office 2007

Hallo Christian

In der Spalte Scan_Zeit hat es x-hundert Werte pro Tag, mit unterschiedlicher Uhrzeit. Nun möchte ich pro Tag gewisse Summen bilden. Darum der Konvert.
Ebenfalls muss ich nach dieser Spalte sortieren können. Das geht auch nicht mit konvertierten Werten. Oder geht das auch einfacher?

Gruss und Danke im Voraus!

Werwolf
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
06. Okt 2011, 13:49
Rufname:

AW: Nach Datum sortieren mit Konvertiertem Datumsfeld - AW: Nach Datum sortieren mit Konvertiertem Datumsfeld

Nach oben
       Version: Office 2007

Hallo,

wie gesagt, einfach die Nachkommastellen abschneiden, z.B. so:
Code:
SELECT   Sum(WasImmerDuSummierenWillst) AS MySum, CONVERT(smalldatetime,CAST(Scan_Zeit AS int),104) AS MyDate
FROM      DeineTabelle
GROUP BY CONVERT(smalldatetime,CAST(Scan_Zeit AS int),104)
ORDER BY CONVERT(smalldatetime,CAST(Scan_Zeit AS int),104)
(Etwas schöner geht es mit einer CTE, bei der man erst mal die Konvertierung durchführt, dann muß man die Funktion nicht dreimal wiederholen - schneller ist es ohne CTE:)
Code:
WITH qry AS
(
SELECT   WasImmerDuSummierenWillst, CONVERT(smalldatetime,CAST(Scan_Zeit AS int),104) AS MyDate
FROM      DeineTabelle
)
SELECT Sum(WasImmerDuSummierenWillst), MyDate FROM qry
GROUP BY MyDate
ORDER BY MyDate

Gruß

Christian
Werwolfli
Im Profil kannst Du frei den Rang ändern


Verfasst am:
06. Okt 2011, 14:27
Rufname:

AW: Nach Datum sortieren mit Konvertiertem Datumsfeld - AW: Nach Datum sortieren mit Konvertiertem Datumsfeld

Nach oben
       Version: Office 2007

Hallo

Okay das funktioniert jetzt.

Nun habe ich als Ergebnis:

2011-09-15 00:00:00
2011-09-14 00:00:00
2011-09-13 00:00:00

Kann man das auch mit diesem Format darstellen lassen?

15.09.2011
14.09.2011
13.09.2011

Gruss

Werwolf
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
06. Okt 2011, 15:40
Rufname:

AW: Nach Datum sortieren mit Konvertiertem Datumsfeld - AW: Nach Datum sortieren mit Konvertiertem Datumsfeld

Nach oben
       Version: Office 2007

Hallo,

sicher. Guckst Du unter "CONVERT" in der SQL Server Online Hilfe, da stehen alle Sorten von Formaten drin. Die Uhrzeit kann man dann noch abschneiden, indem man z.B. in ein varchar konvertiert und die ersten 10 Zeichen mit LEFT nimmt.

Gruß

Christian
Gast



Verfasst am:
04. März 2014, 10:56
Rufname:

AW: Nach Datum sortieren mit Konvertiertem Datumsfeld - AW: Nach Datum sortieren mit Konvertiertem Datumsfeld

Nach oben
       Version: Office 2007

Bitte um kurze Hilfe:
Habe nachfolgenden Code den ich incl. Uhrzeit (01.02.2013 00:00:00) hingebracht habe! Nun möchte ich aber die Uhrzeit wegbringen und habe mal LEFT eingebaut, komme aber auch nicht zum gewünschten Ergebnis:
Code:
    SQLStr = SQLStr + " FROM (SELECT a.ProdPosID, Convert(smalldatetime,CAST(a.EndeZeit AS int), 102) AS Datum, Convert(varchar(10), a.EndeZeit, 108) Uhrzeit,"
ergibt: (01.02.2013 00:00:00)
Nun:
Code:
    SQLStr = SQLStr + " FROM (SELECT a.ProdPosID, LEFT(Convert(smalldatetime,CAST(a.EndeZeit AS int), 102),11) AS Datum, Convert(varchar(10), a.EndeZeit, 108) Uhrzeit,"
ergibt aber: "Feb 1 2013" und das möchte ich aber nicht, sondern einfach nur: 01.02.2013 als Ergebnis.

Kann mir bitte wer hier weiterhelfen - ich brings einfach nicht hin und bin auch kein Sql - Profi.

Vielen Dank im Voraus

Charlybraun
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
04. März 2014, 11:22
Rufname:

AW: Nach Datum sortieren mit Konvertiertem Datumsfeld - AW: Nach Datum sortieren mit Konvertiertem Datumsfeld

Nach oben
       Version: Office 2007

Hallo,

102 ist ANSI, deutsches Format ist 104...wie aus der Hilfe zu CONVERT zu ersehen.

Und je nachdem, was Du mit dem Ergebnis machst, ist die Ausgabe dann trotzdem abweichend, wenn das z.B. in einem Access Control landet, das anders formatiert ist.

Die Uhrzeit mußt Du nicht abschneiden, wenn sie immer 0 Uhr ist, das macht Access dann automatisch.

Gruß

Christian
Charlybraun
VBA-Einsteiger


Verfasst am:
04. März 2014, 15:02
Rufname:

AW: Nach Datum sortieren mit Konvertiertem Datumsfeld - AW: Nach Datum sortieren mit Konvertiertem Datumsfeld

Nach oben
       Version: Office 2007

Danke Christian,

das mit 104 stimmt natürlich (habe ich versuchsweise auf 102 gestellt in beiden Fällen kam es aber zu keiner Veränderung (leise Hoffnung)

Danke aber für Deine Info.
Gleiches Problem habe ich aber auch wenn ich via Excel diese Abfrage erstelle.
Dann hab ich das Format "TT.MM.JJJJ hh:mm" als Resultat.

Es ist mir bewusst, dass ich dann das Datum für event. Sorierungen etc. verwenden kann, möchte aber (für User) dies freundlich gestalten...
könnte via VBA in Excel ".NumberFormat = "m/d/yyyy" " nachträglich durchführen, aber das ist dann wiederum ein zusätzlicher Schritt.

Gibt es denn hier keine einfache Lösung?

Vielen Dank für Deine Hilfe
lg
Charlybraun
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
04. März 2014, 16:17
Rufname:

AW: Nach Datum sortieren mit Konvertiertem Datumsfeld - AW: Nach Datum sortieren mit Konvertiertem Datumsfeld

Nach oben
       Version: Office 2007

Hallo,

das wäre dann genau der richtige Weg, nämlich das Format in Excel auf den Zellen einzustellen, wo es verwendet wird. Auf diese Weise bleibt das Datum weiterhin ein Datumsfeld und in Excel kann man dann auch die Unterfilter verwenden (wie "Quartal" usw.), ansonsten wird es zum Textfeld und die Filter sind eingeschränkt auf Textoptionen. Das gilt natürlich gleichermaßen für Access.

Die beste Variante ist, ein Datumsfeld grundsätzlich gar nicht in SQL zu formatieren, eine Formatierung ist immer Sache des Ausgabemediums, also einer Excel-Zelle oder eines Access-Feldes. So bleibt der Datentyp erhalten, wie er gedacht war und man kann die Formatierung jederzeit flexibel im Frontend and Userbedürfnisse anpassen.

Gruß

Christian
Charlybraun
VBA-Einsteiger


Verfasst am:
04. März 2014, 16:47
Rufname:


AW: Nach Datum sortieren mit Konvertiertem Datumsfeld - AW: Nach Datum sortieren mit Konvertiertem Datumsfeld

Nach oben
       Version: Office 2007

Vielen Dank Cristian!
lg
Charlybraun
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Microsoft Access und MS SQL Server: Datum und Zeit aus Datumsfeld isolieren 4 Helpless0815 581 30. Jul 2013, 12:07
Helpless0815 Datum und Zeit aus Datumsfeld isolieren
Keine neuen Beiträge Microsoft Access und MS SQL Server: select abgleich mit aktuellen Datum 0 datenmaus 1204 21. Aug 2012, 14:01
datenmaus select abgleich mit aktuellen Datum
Keine neuen Beiträge Microsoft Access und MS SQL Server: Nach Datum Sortieren ohne berücksichtigung vom Jahr 2 Memphis1987 1098 30. Sep 2011, 15:29
Gast Nach Datum Sortieren ohne berücksichtigung vom Jahr
Keine neuen Beiträge Microsoft Access und MS SQL Server: Access SQL DATUM / Zeit Sortierung genauigkeit reduzieren 1 JVoi 1129 10. Aug 2011, 23:41
Bitsqueezer Access SQL DATUM / Zeit Sortierung genauigkeit reduzieren
Keine neuen Beiträge Microsoft Access und MySQL: MySQL Datum formatieren 1 Gast 2099 26. Dez 2010, 10:01
trekking MySQL Datum formatieren
Keine neuen Beiträge Microsoft Access und MS SQL Server: SQL-Abfrage GROUP BY "Kalenderwoche" aus Datum 3 madoc 10928 10. Dez 2010, 12:27
Flugs SQL-Abfrage GROUP BY "Kalenderwoche" aus Datum
Keine neuen Beiträge Microsoft Access und MS SQL Server: Feld mit aktuellem Datum füllen wenn es verändert wurde 1 f12 2172 17. Sep 2010, 20:36
Bitsqueezer Feld mit aktuellem Datum füllen wenn es verändert wurde
Keine neuen Beiträge Microsoft Access und MS SQL Server: Einfaches Sortieren mit ORDER BY 1 denzur 1080 29. Jul 2010, 15:47
Bitsqueezer Einfaches Sortieren mit ORDER BY
Keine neuen Beiträge Microsoft Access und MS SQL Server: Verzweifel!! Sortieren abschalten 0 schloetel 573 13. Jul 2010, 12:00
schloetel Verzweifel!! Sortieren abschalten
Keine neuen Beiträge Microsoft Access und MS SQL Server: Export eines Querys - Dateiname soll aktuelles Datum enthalt 3 flamingflo 4480 07. Nov 2009, 08:29
Willi Wipp Export eines Querys - Dateiname soll aktuelles Datum enthalt
Keine neuen Beiträge Microsoft Access und MySQL: Problem mit Datum und MySQL Backend 1 SlayerSH 2582 03. Sep 2009, 06:55
trekking Problem mit Datum und MySQL Backend
Keine neuen Beiträge Microsoft Access und MS SQL Server: Datum/Uhrzeit stündlich 0 dinesim 1153 16. Feb 2009, 18:53
dinesim Datum/Uhrzeit stündlich
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Word Serienbriefe