AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Welches DateTime Format schluckt jede Datenbank?
Thema durchsuchen
Ansicht
Themen-Optionen

Welches DateTime Format schluckt jede Datenbank?

Ein Thema von t2000 · begonnen am 17. Sep 2020 · letzter Beitrag vom 20. Sep 2020
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.625 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#11

AW: Welches DateTime Format schluckt jede Datenbank?

  Alt 18. Sep 2020, 09:35
...Geht dashier bei allen Datenbanken? W3Schools - SQL Working With Dates...
Ein Datum mit Uhrzeit im ISO-Format sollten eigentlich viele Datenbanken schlucken können (z.B. 2020-09-17 16:24:33).
Oha, das ist aber optimistisch gedacht.

Selbst aktuelle Datenbanken dürften da noch Probleme machen, da kommt es ggf. darauf an, was der Admin eingestellt hat.

z.B. kennt MS-SQL auch so völlig bescheuerte Formate wie '09-17-20', was man natürlich auf den ersten Blick als amerikanisches Datumsformat (MM/TT/YY) mit '-' statt '/' erkennt. Quasi das schlimmste, was man sich ausdenken kann. Und glaube bloß nicht, dass das keiner so einstellt (Woher wüsste ich das sonst?)
Thomas Mueller
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.211 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Welches DateTime Format schluckt jede Datenbank?

  Alt 18. Sep 2020, 09:54
"Jede" sind ziemlich viele
Aber die meisten sollte schon gehen.

SQL 92 ist der Standard, an den die meisten Systeme sich halten:
https://www.ibphoenix.com/resources/...design/doc_169
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#13

AW: Welches DateTime Format schluckt jede Datenbank?

  Alt 18. Sep 2020, 10:02
Moin...
Zitat:
MSSQL macht zum Beispiel beim Generieren von Importskripten immer sowas: INSERT ... VALUES(12, 'abc', cast('25.04.2020 14:55:22' as DateTime2))
Das ganze verstehe ich nicht. Die Datenbank bekommt immer einen TDateTime(Double) Wert... Damit ist das Thema Datenbank erledigt. Ob das eine Meier-Müller DB ist, TDateTime ist TDateTime.
Zitat:
sondern um ein ganz kleines Importskript
Der Importer muß das Format erkennen und umwandeln in TDateTime.

...oder habe ich was verpaßt?

Geändert von haentschman (18. Sep 2020 um 10:05 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Welches DateTime Format schluckt jede Datenbank?

  Alt 18. Sep 2020, 10:06
Wenn es über ein (Delphi-)Programm geht dann ja. Es scheint hier aber um die Möglichkeit zu gehen, Skripte zur Anlage direkt auf die DB auszuführen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#15

AW: Welches DateTime Format schluckt jede Datenbank?

  Alt 18. Sep 2020, 10:12
Zitat:
Es scheint hier aber um die Möglichkeit zu gehen, Skripte zur Anlage direkt auf die DB auszuführen.
...ok. Könnte man sich nicht im Setup ein Konsolen Programm aufrufen, was die DB Einträge macht. SQL mit Parametern laden, rein in Query...fertsch.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
972 Beiträge
 
Delphi 6 Professional
 
#16

AW: Welches DateTime Format schluckt jede Datenbank?

  Alt 18. Sep 2020, 12:11
Hmm..

Es ist eigentlich NIE gut ein Datum als String in einem SQL Befehl anzugeben.
Ob und wie der String dann in ein Datum gewandelt wird hängt nicht nur vom verwendeten Datenbanksystem ab, sondern auch z.B. von der installierten Sprache des Datenbankserver.

Ein MS SQL-Server interpretiert ein Datum nach der installierten Sprache unterschiedlich. So kann es dazu kommen, dass Monat und Tag vertauscht werden.

Somit musst Du wohl SQL-Scripte angepasst für das Datenbanksystem bereitstellen.
Für SQL-Server z.B. durch Verwendung von convert:

convert(datetime,'2020.05.15 07:00:00',120)

Die 120 gibt bei der Konvertierung des Strings in das Datetime dann dessen Format an.
So ist sichergestellt, dass das Datum auch bei fremdsprachigen SQL-Servern korrekt übernommen wird.
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#17

AW: Welches DateTime Format schluckt jede Datenbank?

  Alt 18. Sep 2020, 12:49
Es gibt noch das ODBC Date-Format:
Code:
{d'2020-12-30'}

update meineTabelle set datumsFeld={d'2020-12-30'}
das versteht u.a. der MSSQL
https://docs.microsoft.com/en-us/sql...l-server-ver15

und MYSQL
https://dev.mysql.com/doc/refman/8.0...-literals.html
.


Anstelle von d "datum" kann auch t "time" oder auch ts "timestamp" genutzt werden.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#18

AW: Welches DateTime Format schluckt jede Datenbank?

  Alt 18. Sep 2020, 13:25
Es bestünde noch die Möglichkeit YY, MM, DD, HH, NN, SS alle in separate numerische Felder zu legen.
Das sollte jede DB hinbekommen, muss man dann aber auch zerlegen/zusammensetzen,
sollte aber auf jedenfall überall sicher sein.
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#19

AW: Welches DateTime Format schluckt jede Datenbank?

  Alt 18. Sep 2020, 13:38
So wie ich Thomas verstehe, möchte er *ein* SQL-Skript erstellen, welches die DB unabhängig vom verwendeten Server anlegen kann.
Es natürlich einfacher als Skripte für jedes System pflegen zu müssen.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#20

AW: Welches DateTime Format schluckt jede Datenbank?

  Alt 18. Sep 2020, 13:44
Es bestünde noch die Möglichkeit YY, MM, DD, HH, NN, SS alle in separate numerische Felder zu legen.
Das sollte jede DB hinbekommen, muss man dann aber auch zerlegen/zusammensetzen,
sollte aber auf jedenfall überall sicher sein.
Und dann auf alle schönen SQL-Funktionen verzichten die mit Datum/Uhrzeitangaben rechnen können.
Das wäre mir persönlich doch ein zu großer Nachteil.

Bei uns nutzen String und das ISO-Format.
Dann geht immerhin Sortierung "out of the box" korrekt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Alt 18. Sep 2020, 16:04     Erstellt von aris0514
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Antwort Antwort
Seite 2 von 3     12 3      


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 00:03 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