AGB  ·  Datenschutz  ·  Impressum  







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

Time to Integer

Ein Thema von Nine9 · begonnen am 19. Okt 2022 · letzter Beitrag vom 19. Okt 2022
Antwort Antwort
Nine9

Registriert seit: 1. Dez 2021
45 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Time to Integer

  Alt 19. Okt 2022, 16:50
Guten Tag Community,

wie kann ich einen Datentyp 'Time' aus der DB zu einem Integer wandeln?


Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
674 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Time to Integer

  Alt 19. Okt 2022, 17:09
Hallo,

In Delphi ist ein Datumswert intern Gleitkomma. Der Ganzahlanteil sind Tage, nach dem Komma kommt alles was kürzer als ein Tag ist.
Also wird in deinem Time-Wert eine Zahl zwischen 0 und 1 stehen.
Es gibt Functionen mit denen man Datum/Zeit in Windows/Unix/whatever Datum umwandeln kann.

Allerdings wäre erstmal interessant wie der wirkliche Datentyp des Feldes ist um das es hier geht. Sonst ist hier alles nur Stochern im trüben.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Time to Integer

  Alt 19. Okt 2022, 17:12
Da du recht viel zeigst wie du es machst und womit und gut beschrieben hast wofür das ganze gut sein soll,
gibts nur eine rudimentäre Antwort: Query1.FieldByName('Time').AsInteger; .
Frag mich aber nicht wie Du daraus wieder einen Zeitwert erhalten kannst.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Time to Integer

  Alt 19. Okt 2022, 19:20
Welche Genauigkeit soll das Ergebnis haben?
Wenn Sekunden reichen, dann könnte man etwa sowas machen. Vorteil: Der Wert lässt sich auch wieder als Time zurück konvertieren.

Delphi-Quellcode:
StrToIntDef(FormatDateTime(‚hh‘, <dein Datntyp Time>, 0) * 3600 +
StrToIntDef(FormatDateTime(‚nn‘, <dein Datntyp Time>, 0) * 60 +
StrToIntDef(FormatDateTime(‚ss‘, <dein Datntyp Time>, 0)
Das Ergbnis wäre in Sekunden und ein Integerwert, wenn die Anzahl der Sekunden im Bereich eines Integers passen, aber dazu ist die Frage zu ungenau
Habe grad keine Möglichkeit am PC, nur über Tablet
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.049 Beiträge
 
Delphi 12 Athens
 
#5

AW: Time to Integer

  Alt 19. Okt 2022, 19:38
Das perverse rumgestringe sollte man sich garnicht erst angewöhnen
Delphi-Referenz durchsuchenHourOf
Delphi-Referenz durchsuchenMinuteOf
Delphi-Referenz durchsuchenSecondOf, Delphi-Referenz durchsuchenSecondOfTheMinute
bzw.
Delphi-Referenz durchsuchenSecondOfTheDay
Delphi-Referenz durchsuchenMilliSecondOfTheDay
Delphi-Referenz durchsuchenSecondsBetween
usw.

Delphi-Referenz durchsuchenDateUtils
Delphi-Referenz durchsuchenSysUtils
...


für Zeiten pro Tag oder Zeitdifferenzen, kann man auch direkt rechnen,
denn Delphi-Referenz durchsuchenTDateTime ist ein Float (Double), wo im Nachkommateil die Uhrzeit steht, und vor dem Komma die Tage seit X.
Trunc(TimeOf(DT) * 24 * 60) ergibt also die Minuten seit Mitternacht
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (19. Okt 2022 um 20:02 Uhr)
  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 12:30 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