none
SQL tarih sorgusu RRS feed

  • Soru

  • Merhaba herkese iyi çalışmalar, C# masaüstü programımda mysql veritabanında iki tane tarih alanım var başlangıç ve bitiş tarihi veri tipleri date ben sorgumda bitiş tarihi - başlangıç <0 ise demek istiyorum sistem saatini kullanarak kullanıcı değiştirmemesi için oluşturma tarihinide kendi veritabanımda tutuyorum(onuda tam bilmiyorum getdate() ile kullanıcı bilgisayarından tarihi değiştirdiğinde değişir mi ama güvenlik anlamıyla kendimde tutuyorum olusturma tarihini)  ama bu şekilde nasıl yapabilirim yardımcı olabilecek var mı.

    string query2 = "SELECT * FROM tbl WHERE datediff(bitis_tarihi,olusturma_tarihi)<0";



    • Düzenleyen birbey 16 Kasım 2020 Pazartesi 19:10
    16 Kasım 2020 Pazartesi 18:09

Yanıtlar

  • Etmesine eder de, pratikte bugun her makine tarih saat bilgini internetten alip duzenliyor. Kullanicinin o sekilde mudahele edebilecegi bir yapiniz varsa, bir yerde surekli en son zamani (isterseniz sifreleyerek) tutup, geriye donus olup olmadigini kontrol edebilirsiniz. Ya da hicbir yerde tutmaz, siz curdate() yerine internetten aldiginiz zamanla kiyaslayabilirsiniz (saniye ve milisaniye seviyesinde tolerans vermeyi unutmayiniz).


    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.



    • Düzenleyen CetinBasozEditor 17 Kasım 2020 Salı 12:38
    • Yanıt Olarak İşaretleyen birbey 17 Kasım 2020 Salı 15:56
    17 Kasım 2020 Salı 12:36
    Yanıtlayıcı
  • Veritabani ile lisans pek de ilgili degil. Veri sonucta kullanicinin. Yine de kullanabilirsiniz ama projenizin detayini siz biliyorsunuz. Tum veriyi ayni veritabaninda tutma zorunlulugunuz da yok (birden fazla veritabani kullanabilirsiniz).

    Eski bir numarayi soyleyeyim (old Indian trick dedikleri cinsten). Yazma hakkiniz olan bir dosyayi dusunun. Dosyalarin yaratilma, degisiklik, son erisim gibi zamanlari var. Bu zaman degerlerinde, aslinda mevcut olmasina ragmen hic gorunmeyen, ve cogu kimsenin varligindan bile haberdar olmadigi "milisaniye" kismi var. O degeri sifirla baslatip, her gun veya uygulama her acildiginda 1 arttirabilirsiniz. Bir cesit gizli artan sayaciniz olur. Gerisi sizin hayal gucunuze kalmis.

     


    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    • Yanıt Olarak İşaretleyen birbey 17 Kasım 2020 Salı 16:32
    17 Kasım 2020 Salı 16:25
    Yanıtlayıcı

Tüm Yanıtlar

  • Soruda hem MySQL diyorsunuz, hem de getdate. O nedenle kafa karisiyor, hangi veritabanini kullandiginiz net degil ve tam olarak ne yapmak istediginiz de belli degil. datediff'i kullanma sekliniz de MySQL diyor (datediff gereksiz orada ve datetime datatipleriyle istediginizi yapmaz).

    string query2 = @"SELECT * 
        FROM tbl 
        WHERE bitis_tarihi < olusturma_tarihi";



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    17 Kasım 2020 Salı 10:37
    Yanıtlayıcı
  • Çok haklısınız visual studio üzerinde mysql işlem yaptırdığım için benim kafam karıştı peki curdate() fonkisyonu kullansam kullanıcı sistem saatinden müdahale edebilir mi sizce ?

    string query2 = @"SELECT * 
        FROM tbl 
        WHERE bitis_tarihi < curdate()";

    17 Kasım 2020 Salı 10:49
  • Etmesine eder de, pratikte bugun her makine tarih saat bilgini internetten alip duzenliyor. Kullanicinin o sekilde mudahele edebilecegi bir yapiniz varsa, bir yerde surekli en son zamani (isterseniz sifreleyerek) tutup, geriye donus olup olmadigini kontrol edebilirsiniz. Ya da hicbir yerde tutmaz, siz curdate() yerine internetten aldiginiz zamanla kiyaslayabilirsiniz (saniye ve milisaniye seviyesinde tolerans vermeyi unutmayiniz).


    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.



    • Düzenleyen CetinBasozEditor 17 Kasım 2020 Salı 12:38
    • Yanıt Olarak İşaretleyen birbey 17 Kasım 2020 Salı 15:56
    17 Kasım 2020 Salı 12:36
    Yanıtlayıcı
  • Teşekkürler faydası oldu sanırım internet üzerinden tarih ve zamanı çekeceğim fakat sunucu üzerinden mysql veri tabanımda başlangıç ve bitiş tarihlerini tutarak neden masaüstü programımda bu sorguyu nasıl yazacağımın mantığını kafama oturtamıyorum sizin bir öneriniz var mı. Yani demek istediğim lisans gibi düşünülebilir
    17 Kasım 2020 Salı 16:04
  • Veritabani ile lisans pek de ilgili degil. Veri sonucta kullanicinin. Yine de kullanabilirsiniz ama projenizin detayini siz biliyorsunuz. Tum veriyi ayni veritabaninda tutma zorunlulugunuz da yok (birden fazla veritabani kullanabilirsiniz).

    Eski bir numarayi soyleyeyim (old Indian trick dedikleri cinsten). Yazma hakkiniz olan bir dosyayi dusunun. Dosyalarin yaratilma, degisiklik, son erisim gibi zamanlari var. Bu zaman degerlerinde, aslinda mevcut olmasina ragmen hic gorunmeyen, ve cogu kimsenin varligindan bile haberdar olmadigi "milisaniye" kismi var. O degeri sifirla baslatip, her gun veya uygulama her acildiginda 1 arttirabilirsiniz. Bir cesit gizli artan sayaciniz olur. Gerisi sizin hayal gucunuze kalmis.

     


    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    • Yanıt Olarak İşaretleyen birbey 17 Kasım 2020 Salı 16:32
    17 Kasım 2020 Salı 16:25
    Yanıtlayıcı
  • Teşekkürler :) 
    17 Kasım 2020 Salı 16:33