AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Select auf Datetime Spalte
Thema durchsuchen
Ansicht
Themen-Optionen

Select auf Datetime Spalte

Ein Thema von renekr · begonnen am 30. Jan 2006 · letzter Beitrag vom 30. Jan 2006
Antwort Antwort
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#1

Select auf Datetime Spalte

  Alt 30. Jan 2006, 14:16
Datenbank: sql • Version: 2005 • Zugriff über: ADO
Hallo,

Kann mir bitte mal jemand auf die Sprünge helfen :

Ich habe in einer Tabelle einen Datetime Wert drin stehen.
Diesen will ich mittels Select * from auslesen.

Ich will aber nun einen Select machen der auf das DateTime geht.

Das geht nicht weil ich das Dateum convertieren muß für den SQL server 2005-31-01 01:01:00.

Jetzt will ich noch genau den Datensatz zurück bekommen der heute eingetragen ist.

Das kalppt aber nicht,weil ich beim Insert das Date+Time reinschreibe und da sind ab und zu die millisecunden nicht 000 sonder 416 oder so.

Damit bekomme ich den Datensatz von heute nicht weil die MS nicht 000 sind.


Hat da jemand eine Lösung?
Danke
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Select auf Datetime Spalte

  Alt 30. Jan 2006, 14:41
ich würde die zeit beim Reinschreiben runden.

(Hab keine Ahnung von SQL und so aber das ist ne - für mich - allgemeine Lösung)
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von MPirnstill
MPirnstill

Registriert seit: 19. Jul 2004
Ort: Burgdorf
197 Beiträge
 
Delphi XE8 Enterprise
 
#3

Re: Select auf Datetime Spalte

  Alt 30. Jan 2006, 15:11
Hi!

Schau mal in der M$-SQL-Server-Hilfe unter "DATEPART" oder unter CONVERT nach. Wenn du dein Datumsfeld in der WHERE-Bedingung deines SQL damit entspr. umsetzt müstest du auch mit einem einfachen Datum abfragen können.
Vielleicht hilft dir das weiter.

Gruß
Micha
Ich habe fertig!

DP - hier werden Sie geholfen!
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Select auf Datetime Spalte

  Alt 30. Jan 2006, 15:26
Es gibt eine hübsche geheime (weil kaum erwähnte) Formatierung für Datumsangaben, sodaß jeder SQL-Server auf der ganzen Welt damit klar kommt, egal welches Datumsformat denn nun eingestellt ist. Das ist doch praktisch, oder?

SQL-Code:
Select * from Tabelle where Datumsfeld = {d '2006-01-30'} -- nur Datum
Select * from Tabelle where Datumsfeld = {ts '2006-01-30 10:20:30'} -- Datum und Uhrzeit
Angeblich ist das eine ODBC-Formatierung, das funktioniert aber auch mit JDBC oder ADO 2.8

Weiterhin sollte man DateTime angaben nicht auf Gleichheit prüfen, obwohl das als BCD implementiert (also genau) ist. Verwende einfach ein "BETWEEN Heute 0:00 AND Heute 23:59:59". Konvertierungen oder DatePart sind Quatsch, da dann SQL keinen Index mehr verwenden kann und das ist u.U. ein Gau (Tabelle mit 100.000.000 Einträgen).

Um also alle Einträge des 30.1.2006 zu finden, reicht das hier:

Select * From Tabelle Where Datumsfeld between {ts '2006-01-30 00:00:00'} and {ts '2006-01-30 23:59:59'}
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Select auf Datetime Spalte

  Alt 30. Jan 2006, 16:34
Hi @,

Erstmal Danke für die schnelle Hilfe.

Das mit dem Between war mir klar aber viel arbeit. oder ich muß die convert funktion von unten nehmen und die ms einzeln mit between,aber oje.
Ich habe halt das Thema das ich meldungen mit DateTime abspeichere

'{ ts' + QuotedStr(FormatDateTime('yyyy-mm-dd hh":"nn":"ss', Value)) + ' }'; Eigentlich dürfte ja da die Millisec nicht mit abgespeichert werden.
Aber ab und zu sten da ungerade ms drin ,also zb.465.

Und ich lese die Datumsfelder in eine Listbox und per Klick auf die Lsitbox wird nach dem Klick auf eine Spalte ein Select auf die Tabelle gemacht mit dem Datetime von der Listbox ( selected Feld).

Ich weiß das ist nicht besonders schön,aber geht nicht anderst.

mfg
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz