AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeit abfragen

Ein Thema von BillyBoy · begonnen am 29. Mär 2010 · letzter Beitrag vom 29. Mär 2010
Antwort Antwort
Seite 1 von 2  1 2      
BillyBoy

Registriert seit: 30. Dez 2009
7 Beiträge
 
#1

Zeit abfragen

  Alt 29. Mär 2010, 13:12
Datenbank: MS SQL • Version: 2008 • Zugriff über: ADOConnection
MS SQL 2008, Delphi 2009

Hallo,
ich habe in der Datenbank ein Feld als time(7) deklariert, möchte es mit einer Abfrage auslesen und den Wert in eine lokale Variable bringen.

var Zeit1 : TTime;

Zeit1 :=ADOQueryKopf.FieldByName('Beginn').AsTime;

.AsTime gibt es leider nicht, .AsDateTime bringt verständlicherweise einen Fehler.

Wie kann ich den Wert korrekt auslesen ?

tia
Billy
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Zeit abfragen

  Alt 29. Mär 2010, 13:48
Hallo BillyBoy,

Du musst das Datum formatieren.

Zeit := FormatDateTime('hh:nn:ss', ADOQueryKopf.FieldByName('Beginn').AsDateTime)
Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
BillyBoy

Registriert seit: 30. Dez 2009
7 Beiträge
 
#3

Re: Zeit abfragen

  Alt 29. Mär 2010, 15:14
Hallo Jens,

so geht es leider nicht: FormatDateTime erzeugt einen String, Zeit ist aber vom Typ TTime.

und FieldByName('Beginn').AsDateTime geht auch nicht, weil Beginn vom Typ time(7) ist und nicht DateTime!

Quelle-Feld und Ziel-Variable sind vom Typ Time, sollten also ohne Konvertierung zugewiesen werden können.

gruss
Billy
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Zeit abfragen

  Alt 29. Mär 2010, 15:23
Hallo,

vielleicht geht es ja so:

Zeit1 :=frac(ADOQueryKopf.FieldByName('Beginn').AsDateTime); Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Zeit abfragen

  Alt 29. Mär 2010, 15:24
Zitat von BillyBoy:
Quelle-Feld und Ziel-Variable sind vom Typ Time, sollten also ohne Konvertierung zugewiesen werden können.
Nur weil beide Datentypen Time heißen, bedeutet das noch nicht, dass sie auch Zuweisungskompatibel sind.

Wie steht die zeit denn in der Datenbank? Als Zeichenkette oder irgendwie anders? Ich könnte mir nämlich vorstellen, dass sie als Zeichenkette in der Datenbank steht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Zeit abfragen

  Alt 29. Mär 2010, 15:27
Wo ist das Problem?

Delphi-Quellcode:
var Zeit1 : TDateTime;

Zeit1 :=ADOQueryKopf.FieldByName('Beginn').AsDateTime;

label1.Caption:='Datum: '+datetostr(zeit1)+ ' UhrZeit: '+timetostr(Zeit1);
dann schleppst Du eben das Datum zusätzlich mit Dir herum.
Speicher wird nicht mehr verbraucht.

Gruß
K-H

Edith:
Zitat von Luckie:
Wie steht die zeit denn in der Datenbank? Als Zeichenkette oder irgendwie anders? Ich könnte mir nämlich vorstellen, dass sie als Zeichenkette in der Datenbank steht.
Das wiederum glaube ich nicht (time(7) scheint doch kein Char-Format zu sein.
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#7

Re: Zeit abfragen

  Alt 29. Mär 2010, 15:33
Und ins blaue hinein geraten sollte auch folgendes gehen:

Delphi-Quellcode:
var Zeit1 : TTime;

Zeit1 :=trunc(ADOQueryKopf.FieldByName('Beginn').AsDateTime);
Sherloc
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Zeit abfragen

  Alt 29. Mär 2010, 15:47
Zitat von p80286:
Edith:
Zitat von Luckie:
Wie steht die zeit denn in der Datenbank? Als Zeichenkette oder irgendwie anders? Ich könnte mir nämlich vorstellen, dass sie als Zeichenkette in der Datenbank steht.
Das wiederum glaube ich nicht (time(7) scheint doch kein Char-Format zu sein.
also wir haben hier eine MySQL Datenbank mit DATETIME Feldern und wenn ich mir die Daten angucke steht da: "2010-02-17 11:12:11".
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#9

Re: Zeit abfragen

  Alt 29. Mär 2010, 15:56
[quote="Luckie"]
Zitat von p80286:
also wir haben hier eine MySQL Datenbank mit DATETIME Feldern und wenn ich mir die Daten angucke steht da: "2010-02-17 11:12:11".
Es geht doch um einen MS-SQL Server 2008.

Das ist bestimmt anders als bei MySQL implementiert.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
BillyBoy

Registriert seit: 30. Dez 2009
7 Beiträge
 
#10

Re: Zeit abfragen

  Alt 29. Mär 2010, 15:59
Es wäre schön, wenn ihr euch mal die Ausgangsfrage ansehen könntet!

Das Feld Beginn ist definiert als time(7).
Das ist kein Character-Zeug, sondern ein reines SQL-Zeitfeld.
Und weil es ein reines Zeitfeld ist, führt auch FieldByName('Beginn').AsDateTime zu einem Fehler !

Dass ich das Ganze als String auslesen kann und anschließend zur Anzeige wieder in ein Zeitformat umwandeln kann ist schon klar, das war nicht die Frage.

gruss
Billy

P.S.: FieldByName('Beginn').AsFloat tut's auch nicht
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:14 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