• 03-01-2009, 00:04:48
    #1
    Üyeliği durduruldu
    Evet yeni bir makale ile sizlerleyim ;
    Bugün yaşamış olduğum bir sıkıntı sonucu sizlerde aynı sorunla karşılaştığınızda öyle kala kalmayın diye yazıyorum :P

    Mysql de tarih alanı için DATETIME kullanılır ;
    Fakat bilgi girerken örn :
    <%
    strBaglantiNesnesi.Execute ("INSERT INTO tablomuz (Tarih) VALUES ('" & NOW() & "');")
    %>
    yapıp bilgi girmek istersek
    yada farketmez NOW() ı bir değişkene aktararak eklemek istersek
    şöyle bir hata alırız.

    Microsoft OLE DB Provider for ODBC Drivers hata '80004005' 
    
    [MySQL][ODBC 5.1 Driver][mysqld-5.0.67-community-nt]Incorrect datetime value: '02.01.2009 23:58:44' for column 'Tarih' at row 1
    Mysql bize böyle bir tarih formatını desteklemediğini söyler.

    O zaman bizde Tarih üzerinde işlemler yapıp değere atayarak kaydedelim.

    Örn :
    <%
    strYil = Year(Date)
    strAy = Month(Date)
    strGun = Day(Date)
    strSaat = Time()
    
    Tarihimiz = strYil & "-" & strAy & "-" & strGun & " " & strSaat
    strBaglantiNesnesi.Execute ("INSERT INTO tablomuz (Tarih) VALUES ('" & Tarihimiz & "');")
    %>
    Mysql bize bu tarih formatını da desteklemediğini söylerse PC ye bir kafa atarız ve bu işi bırakırız.

    Başka bir makalede görüşmek üzere
  • 03-01-2009, 00:44:14
    #2
    Üyeliği durduruldu
    sende bir sorun olmasın sakın? Mysql in tüm tarih fonksiyonlarını gayet güzel standart olarak kullanabiliyorum..

    saat kullanmayacaksanda DATE belirlersin veri türünü sadece gg/aa/yy girer. belirlersen saate kadar girer..

    ayrıca cdate ile bazen hata veriyor. çevirmeden direkt yazdığımda gayet güzel zaten kullanıyorum..

    dediğin şekilde yapılmasındada bir sakınca yok tabiiki..

    ancak mysql e now() girerken accessteki gibi '"&Now()&"' yazmaman gerekir..

    strBaglantiNesnesi.Execute ("INSERT INTO tablomuz (ad,soyad,Tarih) VALUES ('"&ad& "','"&soyad& "',now());")

    olarak denemeden sanırım yazdın bu makaleyi.. çünkü now değerini bu şekilde mysql e girebilirsin değişkene atamadan..
    ayrıca bir makale niteliği taşımamış ancak yinede yaşadığın bir sorunu başkasının yaşamamasını düşünerek kendince ürettiğin bir çözümü paylaşman açısında hoş bir fikir..

    fikir ve öneri için teşekkür ederim faydalı olacak arkadaşlara..
  • 03-01-2009, 14:38:27
    #3
    Üyeliği durduruldu
    inadinaonline adlı üyeden alıntı: mesajı görüntüle
    dediğin şekilde yapılmasındada bir sakınca yok tabiiki..
    ancak mysql e now() girerken accessteki gibi '"&Now()&"' yazmaman gerekir..
    strBaglantiNesnesi.Execute ("INSERT INTO tablomuz (ad,soyad,Tarih) VALUES ('"&ad& "','"&soyad& "',now());")
    Demişsin arkadaşım DateDiff işlemleri yaptığın zaman ne yapacaksın mecburen dediğim yola gelecekmisin.
  • 06-01-2009, 00:24:27
    #4
    Üyeliği durduruldu
    cdate komutundan haberim yoksa senin dediğin yola giderim tabi.. ama teşekkürler dostum benim cdate fonksiyonundan haberim var.. o yüzden bildiğim şekilde devam edeceğim..

    İlave:
    Sen now değerini değişken şeklinde gönderirsen bu tarih formatından çıktığı için mysql bize bu bir tarih formatı değildir der..

    now() diye girdiğinde herhangi bir sorun kalmaz..

    ancak tabiiki senin yönteminin - veya + sı olduğu tartışılabilir.. kanımca bir - si olmayacaktır..
    umarım lazım olan arkadaşlara veya aynı dertten muzdarip olanlara ilaç olur bu yazın.. yinede teşekkürler yazı için.