AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Sqlite - Zeitstempel als Integer
Thema durchsuchen
Ansicht
Themen-Optionen

Sqlite - Zeitstempel als Integer

Ein Thema von Der schöne Günther · begonnen am 1. Sep 2016 · letzter Beitrag vom 1. Sep 2016
Antwort Antwort
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Sqlite - Zeitstempel als Integer

  Alt 1. Sep 2016, 12:57
Datenbank: SQLite • Version: 3 • Zugriff über: dll
Ich habe eine Tabelle, die wird so erstellt:
Code:
CREATE TABLE [measurements] (
  [id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
  [timeComplete] TIMESTAMP,
  /* ... */   
);
Wenn ich es richtig verstanden habe, dann ist die Spalte "timeComplete" eine NUMERIC-Spalte, also INTEGER da ihr Typ "TIMESTAMP" in keine andere Kategorie passt.

Die Query
Code:
SELECT CAST(timeComplete as INTEGER), timeComplete FROM measurements
ORDER by timeComplete DESC
liefert mir als Ergebis:
unbenannt.png

Das macht doch keinen Sinn, weshalb ist es in zwei Fällen unsinnigerweise "2016", nur beim letzten macht es Sinn (Unix-Zeitstempel)?

Mein "Sortieren nach Zeit" funktioniert wenn ich die Query explizit auf
Code:
SELECT CAST(timeComplete as INTEGER), timeComplete FROM measurements
ORDER by CAST(timeComplete as TEXT) DESC
abändere, aber verstehen tue ich es nicht.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: Sqlite - Zeitstempel als Integer

  Alt 1. Sep 2016, 13:06
Seit wann kann SQLite denn TIMESTAMP?

Wieso nutzt Du nicht die SQLite Funktionen?
https://www.sqlite.org/lang_datefunc.html
Gruß, Jo
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Sqlite - Zeitstempel als Integer

  Alt 1. Sep 2016, 13:12
Seit wann kann SQLite denn TIMESTAMP?

Wieso nutzt Du nicht die SQLite Funktionen?
https://www.sqlite.org/lang_datefunc.html
SQLite hat eigentlich nur 5 Datentypen. Aber durch das Prinzip der Datentypaffinitäten kann man sich beliebige Datentypen definieren. Eine Spalte könnte also mit dem Datentyp jobo deklariert werden. Bei SQLite wird dann ein Verfahren abgearbeitet das entscheidet, wie der Datentyp behandelt wird. Siehe SQLite Datentypen und SQLite Datentyp Affinitäts-Beispiele.

Wenn ich es richtig verstanden habe, dann ist die Spalte "timeComplete" eine NUMERIC-Spalte, also INTEGER da ihr Typ "TIMESTAMP" in keine andere Kategorie passt.
Das sollte passen.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Sqlite - Zeitstempel als Integer

  Alt 1. Sep 2016, 16:45
Wieso nutzt Du nicht die SQLite Funktionen?
https://www.sqlite.org/lang_datefunc.html
Das habe ich probiert bevor ich in die Delphi-Praxis fragen kam. Das besserte auch nichts. Jetzt scheint das aber genauso gut zu funktionieren. Ich bin verwirrt, vielleicht war in der Test-Datenbank etwas korrupt, wer weiß.
  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 04:11 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