datum in einen string



  • Bin noch bisschen C++-Anfänger, habe aber viel mit php gemacht. Ich möchte jetzt einen select string bearbeiten:

    select="SELECT name, vorname FROM k_kontakt WHERE date_formate(geburtstag,%m)='' LIMIT 0,1";
    

    da ist ja eine stelle leer und zwar zwischen '' da muss eine zahl hin und zwar die vom monat. Wie kriege ich da die Zahl des aktuellen monats rein? Was für für eine funktion muss ich unter c fürs datum nutzen und wie kriege ich die dann da rein.



  • Kann man mit der Standard-Lib garnicht abfragen. Entweder du benutzt eine Funktion aus deinem Betriebssystem oder besser boost::date.



  • gibt es in c++ keine funktion die mir das aktuelle datum liefert?



  • So vielleicht.

    COleDateTime dt = COleDateTime::GetCurrentTime()
    
    int year = dt.GetYear()
    ......
    


  • du kannst es alelrdings auch von der datenbank abfragen mit sysdate.

    zum Beispiel to_char(sysdate,'MM'), damit müsstest du den Monat bekommen.

    select="SELECT name, vorname FROM k_kontakt WHERE date_formate(geburtstag,%m)= to_char(sysdate,'MM')";
    

    funktioniert zumindest bei Oracledatenbanken.



  • Muss ich dafür irgendeine neue Headerdatei einbinden?
    Was bedeuten die ::?



  • Oder GetLocalTime()

    SYSTEMTIME st;
    GetLocalTime(&st);
    
    WORD year = st.wYear;
    


  • mit :: greifst du auf die Funktion der Klasse zu.

    Das hier müsste auch gehen, probiert habe ich es nicht.

    COleDateTime dt;
    dt = COleDateTime.GetCurrentTime();
    
    int year = dt.GetYear()
    int month = dt.GetMonth();
    

    Wenn du es per Datenbankabfrage machst nimm einfach sysdate, das ist das einfachste. Falls du Access oder anderes als Datenbank benutzt kann es auch anders heißen. Bei Oracle ist es sysdate, müsste auch standard sql sein.



  • SArkin schrieb:

    mit :: greifst du auf die Funktion der Klasse zu.

    Das hier müsste auch gehen, probiert habe ich es nicht.

    COleDateTime dt;
    dt = COleDateTime.GetCurrentTime();
    
    int year = dt.GetYear()
    int month = dt.GetMonth();
    

    Wenn du es per Datenbankabfrage machst nimm einfach sysdate, das ist das einfachste. Falls du Access oder anderes als Datenbank benutzt kann es auch anders heißen. Bei Oracle ist es sysdate, müsste auch standard sql sein.

    Du weisst aber schon das wir hier im C++ Forum sind. 😃 🙄 😃
    COleDateTime heisst:
    1.) Windows
    2.) MFC



  • Sorry, knapp daneben ist auch vorbei. Vielleicht ist es aber doch was er/sie gesucht hat.



  • Danke ich habe das mit der Datenbank umgesetzt... dass ich da nicht selber drauf gekommen bin 🙂



  • Ansonsten geht es auch mit der <ctime>


Anmelden zum Antworten