Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi aus Monat+Jahr DATE machen (https://www.delphipraxis.net/112202-aus-monat-jahr-date-machen.html)

hoika 16. Apr 2008 17:21

Datenbank: Firebird • Version: 1.5 • Zugriff über: egal

aus Monat+Jahr DATE machen
 
Hallo,

in einer SP habe ich als Parameter Monat und Jahr (Integer).
Jetzt brauche ich den 1.1. des Monats als DATE.

isher mache ich das so.


FirstDayOfMonth DATE

Select Cast( 1 || '.' || :TheMonth || '.' || :TheYear as Date)
From rdb$DataBase
Into :FirstDayOfMonth ;


Geht das ohne UDF auch anders ?


Heiko

Hansa 16. Apr 2008 18:11

Re: aus Monat+Jahr DATE machen
 
Hoika, Du musst auch selber suchen ! :warn: :mrgreen:

http://www.firebirdsql.org/index.php...id=ostenried_1

Wenn das nicht reicht. Da ist sogar der "Karfreitag" dabei. :lol: Das drucke ich mir sogar glatt mal aus für Archiv. :mrgreen:

Edit : Sofern die Funktion/SP fertig ist bitte ich höflichst darum sie hier zu posten. :zwinker:

mkinzler 16. Apr 2008 18:15

Re: aus Monat+Jahr DATE machen
 
Das ist aber nicht unbedingt einfacher als Heikos Lösung

hoika 16. Apr 2008 18:18

Re: aus Monat+Jahr DATE machen
 
Hallo Hansa,

hab ja gesucht !! tztz

aus deinem Link

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

Also habe ich es ja richtig gemacht.

Was soll ich da Posten ?

Die SP macht ja was ganz anderes,
nur wollte der Kunde halt Monat und Jahr als Integer übergeben
(externer Zugriff)

Vielleicht sollte man wirklich mal ein paar nützliche Datumsfunktionen
hier posten (IncMonth z.B.).


edit:
http://www.firebirdsql.org/index.php...l&id=calford_1

Das hatte ich mal gelesen und danach ich lange gesucht.



Heiko

Hansa 16. Apr 2008 18:25

Re: aus Monat+Jahr DATE machen
 
Was soll extern sein ? :shock:

shmia 16. Apr 2008 18:28

Re: aus Monat+Jahr DATE machen
 
Zitat:

Zitat von hoika
Geht das ohne UDF auch anders ?

Es geht auch ganz ohne UDF und StoredProcs, wenn man sich eine Kalendertabelle aufbaut
Code:
Datum     | Day | Month | Year | DayOfWeek | WeekNo |
======================================================
01.01.2008 |   1 |     1 | 2008 |         3 |      1
Für jeden Tag gibt es einen Datensatz sagen wir für die nächsten 20 Jahre.
Vorteile:
* portabel auf jede Datenbank
* Informationen leicht per JOIN oder Unterabfrage ermittelt werden
* erlaubt auch komplexe Fragestellungen (z.B. welcher Tag im Jahr 2008 der Karfreitag ist oder welche Tage haben Sommerzeit)
Nachteile:
* Tabelle ist im Zeitbereich begrenzt
* Tabelle muss vom Programm initial befüllt werden

hoika 16. Apr 2008 18:50

Re: aus Monat+Jahr DATE machen
 
Hallo,

machen wir 100 Jahre draus,
dann muss ich danach keinen Support mehr machen ;)


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:53 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