Seite 1 von 1

SQLite & Datumsfunktionen

Verfasst: 24.10.2011 11:00
von Kiffi
Hallo,

SQLite bietet interessante Datumsfunktionen. U.a. kann man die UTC relativ einfach ermitteln:

Code: Alles auswählen

UseSQLiteDatabase()
OpenDatabase(0, ":memory:", "", "", #PB_Database_SQLite)
DatabaseQuery(0, "Select DateTime('now', 'localtime'), DateTime('now', 'utc')")
NextDatabaseRow(0)
Debug "LocalTime:" + GetDatabaseString(0,0)
Debug "UTC:"       + GetDatabaseString(0,1)
Das ganze sollte plattformübergreifend funktionieren.

Weitere Infos hier: http://www.sqlite.org/lang_datefunc.html

Grüße ... Kiffi

Re: SQLite & Datumsfunktionen

Verfasst: 24.10.2011 11:35
von ts-soft
:allright:
Hallo Peter,
ich habe hier aber irgendwie ein falsches Ergebnis? Der Unterschied sind doch keine 4 Stunden, oder?
Debugger-Ausgabe hat geschrieben:LocalTime:2011-10-24 11:32:43
UTC:2011-10-24 07:32:43
Gruß
Thomas

Re: SQLite & Datumsfunktionen

Verfasst: 24.10.2011 12:01
von Kiffi
ts-soft hat geschrieben:Der Unterschied sind doch keine 4 Stunden, oder?
öhm, stibimmt. Wir sind momentan UTC+2. Da ist noch was
faul. Muss ich noch kontrollieren...

Danke für den Hinweis & Grüße ... Kiffi

Re: SQLite & Datumsfunktionen

Verfasst: 24.10.2011 12:23
von Kiffi
seltsam...

Code: Alles auswählen

UseSQLiteDatabase()
OpenDatabase(0, ":memory:", "", "", #PB_Database_SQLite)
DatabaseQuery(0, "Select DateTime('now'), DateTime('now', 'localtime'), DateTime('now', 'utc')")
NextDatabaseRow(0)

Define Ausgabe.s

Ausgabe + "DateTime('now', 'utc'): "       + #TAB$ + GetDatabaseString(0,2) + #LF$
Ausgabe + "DateTime('now'): "              + #TAB$ + #TAB$ + GetDatabaseString(0,0) + #LF$
Ausgabe + "DateTime('now', 'localtime'): " + #TAB$ + GetDatabaseString(0,1) + #LF$

MessageRequester("", Ausgabe)
ergibt hier in DE:

Code: Alles auswählen

DateTime('now', 'utc'):        2011-10-24 08:13:52
DateTime('now'):               2011-10-24 10:13:52
DateTime('now', 'localtime'):  2011-10-24 12:13:52
und in BR:

Code: Alles auswählen

DateTime('now', 'utc'):         2011-10-24 12:13:52
DateTime('now'):                2011-10-24 10:13:52
DateTime('now', 'localtime'):   2011-10-24 08:13:52
mir scheint, als sei das DateTime('now') das 'richtigere' UTC.

Grüße ... Kiffi

Re: SQLite & Datumsfunktionen

Verfasst: 24.10.2011 13:18
von bobobo
guggemal
http://sqlite.org/lang_datefunc.html

ein Neuverwursten von now mit utc führt halt zu komischen Ergebnissen weil now eben
schon die MaschinenZeit ohne die Zeitverschiebung nach zone und DayLightSaving liefert.

nimm doch mal zur weiteren Verwirrung :)

Code: Alles auswählen

DateTime('now','utc','localtime','utc','utc','localtime');

Re: SQLite & Datumsfunktionen

Verfasst: 24.10.2011 14:03
von Kiffi
bobobo hat geschrieben:[...] weil now eben schon die MaschinenZeit ohne die Zeitverschiebung nach zone und DayLightSaving liefert.
ah! Danke für die Erleuchtung! :allright:

Grüße ... Kiffi

Re: SQLite & Datumsfunktionen

Verfasst: 24.10.2011 14:34
von bobobo
bedank dich bei sqlite.org 8)