Veröffentlicht 12. Mai 200520 j Hallo, ich habe folgendes Problem, ich mochte in einem SQL Statement ein Datum mit dem Aktuellen vergleich, damit ich das aktuelle Datum nicht auseinander ziehen muss, möchte ich gerne meine drei Spalten Jahr, Monat, Tag in einer Spalte Datum zusammenfassen! Danke im Voraus für eure Hilfe! Jule
12. Mai 200520 j Erstmal : Um welche Datenbank geht es ? ;-) Ansonsten mysql: select concat(jahr,'-', monat,'-',tag) from tabelle; ergibt 2005-05-12 oracle : select jahr || '-' || monat || '-' || tag from tabelle; 2005-05-12 oder : select to_date( jahr || '-' || monat || '-' || tag , 'YYYY-MM-DD') from tabelle; edit: zu langsam ;-) Datenbank also IBM DB2 ? Da kenn ich mich leider nicht aus , vielleicht funktioniert ja was ähnliches wie oben trotzdem.
12. Mai 200520 j ich habe jetzt leider nicht ganz verstanden ob du a) eine abfrage auf drei tabellenspalten machen möchtest oder die drei tabellenspalten auf eine datumsspalte normalisieren willst. bei a) würde mir einfallen: select blablabla from tabelle where tag & "." & monat & "." & jahr = date(now()) bei update tabelle set datum = tag & "." & monat & "." & jahr nachdem du nicht angegeben hast, welche datenbankengine das betrifft, müsste die syntax so oder ähnlich sein (oracle verwendet z.b. sysdate und plus anstatt &). s'Amstel
12. Mai 200520 j Ich möchte drei Spalten zu einer machen! wenn ich z.B. Jahr(2005) Monat(3) Tag(20) habe, möchte ich dies in einer Spalte haben, um es mit dem aktuellen Datum 20050512 vergleichen zukönnen. Jahr--> short Monat--> Byte Tag --> Byte
12. Mai 200520 j Hi, kommt das Datenbankdesign von dir? Kannst du es noch ändern? Dann nimm nicht 3 Spalten sondern 1 vom Type Date oder wie auch immer das bei db2 heißt. Gruß Jaraz
12. Mai 200520 j Nee, kann ich nicht ändern, hab das Problem aber schon gelöst! Danke an alle die geantwortet haben! Gruß Jule
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.