2013-09-24 8 views
6

Wie kann ich die Datum hinzufügen oder Datum Diff-Funktionen Ich habe ein Szenario, wo ich Menschen finden müssen, deren Geburtstage sind entweder heute oder nach n Tagen. Wie erreiche ich das in informix?Datum Zeit Funktionen Hilfe Informix

SELECT mbr_code, fname, lname 
INTO rsMbrCode, rsFName, rsLName 
FROM asamembr 
WHERE cust_code = membershipnumber 
    AND ((day(bdate) - day(CURRENT)) <= rsTest 
    AND MONTH(bdate) = month(CURRENT)) 

RETURN rsMbrCode, rsFName, rsLName WITH RESUME; 

Antwort

7

Man könnte so etwas tun:

SELECT mbr_code,fname,lname 
INTO rsMbrCode,rsFName,rsLName 
FROM asamembr 
WHERE cust_code = membershipnumber 
    AND MDY(month(bdate),day(bdate),year(today)) 
    BETWEEN TODAY AND TODAY + <NUMBEROFDAYS> UNITS DAY; 

Sie ein Datum Konstrukt mit MDY Verwendung mit dem MONTH und DAY von bdate und YEAR von TODAY. Dann sehen Sie, ob es zwischen den Daten ist, die Sie abgleichen möchten.

Documentation for MDY:

Die MDY Funktion nimmt als Argument drei Integer-Ausdrücke, die den Monat, den Tag repräsentieren und Jahr und gibt Wert einen Typ DATE.

  • Das erste Argument steht für die Nummer des Monats (1 bis 12).
  • Das zweite Argument steht für die Nummer des Tages des Monats (1 bis 28, 29, 30 oder 31, passend für den Monat)
  • Der dritte Ausdruck repräsentiert das 4-stellige Jahr. Sie können keine zweistellige Abkürzung verwenden.