AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi [SQL]Tag + Monat in Date umwandeln ?
Thema durchsuchen
Ansicht
Themen-Optionen

[SQL]Tag + Monat in Date umwandeln ?

Ein Thema von Hansa · begonnen am 2. Sep 2005 · letzter Beitrag vom 3. Sep 2005
Antwort Antwort
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

[SQL]Tag + Monat in Date umwandeln ?

  Alt 2. Sep 2005, 12:00
Datenbank: FB 1.5 • Zugriff über: blubb
Hi,

ich habe hier einen Monat und das Jahr (Tag interessiert nicht). Die DB erwartet aber ein Date. Wie baue ich daraus jetzt ein Date ?
Gruß
Hansa
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: [SQL]Tag + Monat in Date umwandeln ?

  Alt 2. Sep 2005, 12:13
Mit EncodeDate:
Delphi-Quellcode:
var
   datum: TDateTime;
   jahr, monat : integer;
begin
   jahr := ...
   Monat := ...
   datum := EncodeDate(jahr, monat, 1),
end;
Andreas
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: [SQL]Tag + Monat in Date umwandeln ?

  Alt 2. Sep 2005, 12:15
Man kann aus einem Monat und einem Jahr nun mal kein Datum erzeugen. Dir fehlt der Tag. Irgendeiner. Ich nehm den ersten.
Dann so (kenn kein Firebird, aber der kann ja wohl convert) in MSSQL:
Delphi-Quellcode:
declare @month int, @year int
set @month = 10
set @year = 2005

select convert (datetime, convert (varchar(2), @month)+'/01/'+convert (varchar(4), @year),101)
Convert dürfte ANSI-SQL sein, der dritte Parameter (101) sagt MSSQL, das das Datum in der From 'mm/dd/yyyy' formartiert ist. Irgendsowas gibt es doch auch bei FB-SQL. Und, konvertiert der nicht von alleine, sobald Du versuchst in ein Date-Feld einen String reinzuschreiben, der nach Datum riecht?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: [SQL]Tag + Monat in Date umwandeln ?

  Alt 2. Sep 2005, 12:19
Thx, aber ich bräuchte die reinen SQL-Befehle. Ah, roter Kasten schlägt zu. Convert ? Müßte es wohl sein.
Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: [SQL]Tag + Monat in Date umwandeln ?

  Alt 2. Sep 2005, 12:36
Sorry, Convert scheint es nicht zu sein. Zumindest finde ich da nix drüber. Vielleicht etwas genauer : brauche praktisch das Gegenstück zu EXTRACT DAY FROM DATEFELD Ich habe also Tag (halt 1) und Monat und Jahr und das soll ein DATE werden.
Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: [SQL]Tag + Monat in Date umwandeln ?

  Alt 3. Sep 2005, 13:15
Hier ist eine interessante Seite :

http://firebird.sourceforge.net/inde...id=ostenried_1

Die ist echt Top und noch von Landsmann. Hehe, da sind sogar die "Heiligen Drei Koenige" drin ! Ist wohl ein Bayer.

Jetzt ist aber folgende Frage aufgetaucht :

SQL-Code:
CREATE PROCEDURE PROC_ENCODEDATE (
    AYEAR INTEGER,
    AMONTH INTEGER,
    ADAY INTEGER)
RETURNS (
    RESULT DATE)
AS
BEGIN
   Result = cast( ADay || '.' || AMonth || '.' || AYear as DATE);
   suspend;
END
^
Das funktioniert auch, aber das hier nicht : CAST ('20.08.2005AS DATE); Was ist daran falsch ?
Gruß
Hansa
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: [SQL]Tag + Monat in Date umwandeln ?

  Alt 3. Sep 2005, 13:56
Hallo Hansa,
Zitat von Hansa:
Das funktioniert auch, aber das hier nicht:
CAST ('20.08.2005AS DATE); Was ist daran falsch ?
falsch ist vielleicht etwas zu hart - aber das interne Format entspricht dem Datum im DIN Format. Der Embedded SQL Guide schreibt zum Thema explicit conversion from character to date type:

Zitat:
Succeeds if the string is in the following format: YYYY-MM-DD
Bei mir funktioniert aber auch dein Datumsformat problemlos.

Grüße vom marabu
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: [SQL]Tag + Monat in Date umwandeln ?

  Alt 3. Sep 2005, 14:14
Falsch ist daran gar nichts. Der Fehler lag in dem aufrufenden Programm und da waren 2 Parameter vertauscht. 8) Geht echt verblüffend einfach mit Firebird, wenn man weiß wie.
Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#9

Re: [SQL]Tag + Monat in Date umwandeln ?

  Alt 3. Sep 2005, 20:58
Noch ein Fehler :

CAST ('12.08.2005as DATE) das geht ja so, aber das hier :

CAST (:DATUM as DATE) geht nicht ! "Data type unknown." Der feste Wert nützt mich ja da nichts. 8) Was ist noch zu tun ?
Gruß
Hansa
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: [SQL]Tag + Monat in Date umwandeln ?

  Alt 3. Sep 2005, 21:29
Na, dann setze doch den Datentyp, bevor du das statement zur Ausführung bringst, Hansa.

query.Parameters.ParamByName('DATUM').DataType := ftString; Oder verzichte ganz auf den CAST im SQL und mache ihn gleich im Programm.

marabu

PS: Kennst du das alte Lied Ein Loch ist im Eimer...?
  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:42 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