wmaraci reklam

sql between ile tarihe göre arama sorunu

19 Mesajlar 2.135 Okunma
pst.net
wmaraci reklam

murattkilinc murattkilinc www.instegral.com Kullanıcı
  • Üyelik 06.04.2016
  • Yaş/Cinsiyet 32 / E
  • Meslek Yazılım Uzmanı
  • Konum İzmir
  • Ad Soyad M** K**
  • Mesajlar 119
  • Beğeniler 7 / 15
  • Ticaret 0, (%0)
Merhaba arkadaşlar

Yapmak istediğimi bir sorguda where kısmı içerisinde AND ile birbirine bağlanmış 10 satır var ve 9 unda bir sıkıntım yok.

Fakat bir satırımda kullanıcıdan tarih alarak bir aralık oluşturuyorum. Sıkıntı burada başlıyor kullanıcı tarih aralığı girmeden de sorgulama yapabilmeli. Ancak yazdığım sql sorgusu BETWEEN'den sonraki AND operatörü dolu olmadan sorgu yapmıyor.

SORGUNUN SIKINTILI KISMI

AND AlumniAcademicInfo.grad_date BETWEEN '$start_date%' AND '$end_date%'

Yeşillendirirseniz çok makbule geçecek.Şimdiden teşekkürler
 

 

www.instegral.com
wmaraci
reklam

GuruAjans GuruAjans WM Aracı Kullanıcı
  • Üyelik 12.11.2014
  • Yaş/Cinsiyet 25 / E
  • Meslek Öğrenci
  • Konum İstanbul Anadolu
  • Ad Soyad H** Ç**
  • Mesajlar 445
  • Beğeniler 103 / 103
  • Ticaret 30, (%100)
Başta ki AND i OR olarak değiştirip denermisiniz
 

 

murattkilinc murattkilinc www.instegral.com Kullanıcı
  • Üyelik 06.04.2016
  • Yaş/Cinsiyet 32 / E
  • Meslek Yazılım Uzmanı
  • Konum İzmir
  • Ad Soyad M** K**
  • Mesajlar 119
  • Beğeniler 7 / 15
  • Ticaret 0, (%0)
AND AlumniAcademicInfo.department_id = UnitDepartment.department_id
AND AlumniAcademicInfo.grad_date IS NOT NULL
AND AlumniAcademicInfo.university_id = 1
AND AlumniAcademicInfo.grad_type_id = AlumniGradType.type_id
AND AlumniJobInfo.alumni_id = AlumniAcademicInfo.alumni_id
AND AlumniAcademicInfo.faculty_id = UnitAcademic.academic_id
AND AlumniAcademicInfo.grad_type_id LIKE '%$graduated_type%'
AND AlumniAcademicInfo.faculty_id LIKE '%$graduated_faculty%'
AND AlumniAcademicInfo.department_id LIKE '%$graduated_department%'
AND Alumni.name LIKE '%$alumni_name%'
AND Alumni.surname LIKE '%$alumni_surname%'
OR AlumniAcademicInfo.grad_date BETWEEN '$start_date%' AND '$end_date%'
AND AlumniJobInfo.work_status LIKE '%$work_status%'
AND AlumniAcademicInfo.education_type LIKE '%$education_type%'

baştaki AND'i OR olarak değiştirdim. Bu sefer de work_status kısımlarını uygun şekilde getirmiyor
 

 

www.instegral.com

GuruAjans GuruAjans WM Aracı Kullanıcı
  • Üyelik 12.11.2014
  • Yaş/Cinsiyet 25 / E
  • Meslek Öğrenci
  • Konum İstanbul Anadolu
  • Ad Soyad H** Ç**
  • Mesajlar 445
  • Beğeniler 103 / 103
  • Ticaret 30, (%100)
Between den sonraki '$end_date%' ardından gelen AND kısmını da OR denermisiniz yani between komutunun sağı solu OR olarak
 

 

wmaraci
Mersin evden eve nakliyat

compost0x compost0x Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 26.05.2018
  • Yaş/Cinsiyet 30 / E
  • Meslek Öğrenci
  • Konum Muğla
  • Ad Soyad A** Y**
  • Mesajlar 99
  • Beğeniler 23 / 19
  • Ticaret 2, (%50)
AND AlumniAcademicInfo.department_id = UnitDepartment.department_id
AND AlumniAcademicInfo.university_id = 1
AND AlumniAcademicInfo.grad_type_id = AlumniGradType.type_id
AND AlumniJobInfo.alumni_id = AlumniAcademicInfo.alumni_id
AND AlumniAcademicInfo.faculty_id = UnitAcademic.academic_id
AND AlumniAcademicInfo.grad_type_id LIKE '%$graduated_type%'
AND AlumniAcademicInfo.faculty_id LIKE '%$graduated_faculty%'
AND AlumniAcademicInfo.department_id LIKE '%$graduated_department%'
AND Alumni.name LIKE '%$alumni_name%'
AND Alumni.surname LIKE '%$alumni_surname%'

AND AlumniAcademicInfo.grad_date IS NOT NULL AND AlumniAcademicInfo.grad_date BETWEEN '2018-01-01' AND '2018-01-10'

AND AlumniJobInfo.work_status LIKE '%$work_status%'
AND AlumniAcademicInfo.education_type LIKE '%$education_type%'



Bu şekilde çalışması lazım tarih alanını düzenleyebilirsiniz. Eğer anydesk bağlantı verirseniz kontrol edebiliriz. Diğer alanlar yüzünden bir çakışma olabilir sql ne hata döndürüyor görmemiz lazım
 

 

murattkilinc murattkilinc www.instegral.com Kullanıcı
  • Üyelik 06.04.2016
  • Yaş/Cinsiyet 32 / E
  • Meslek Yazılım Uzmanı
  • Konum İzmir
  • Ad Soyad M** K**
  • Mesajlar 119
  • Beğeniler 7 / 15
  • Ticaret 0, (%0)
@HalitCirik ve @compost0x ikinizin çözüm yolunu da denedim. Fakat bir türlü olmuyor.
Mezun bilgi sistemi tasarlıyorum. Adminin mezun ararken tarih aralığı seçmediğinde de sorgu yapabilmesi lazım. Tarih aralığı hariç bir sıkıntı yok. Ancak bu konu epeyce kafamı kurcaladı.
 

 

www.instegral.com

yetkilibiri yetkilibiri Yazılım Uzmanı Kullanıcı
  • Üyelik 28.05.2017
  • Yaş/Cinsiyet 38 / E
  • Meslek Yazılım Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad E** Y**
  • Mesajlar 107
  • Beğeniler 41 / 41
  • Ticaret 2, (%100)
Böyle dene murattkilinc ;)

AND ( AlumniAcademicInfo.grad_date >= '$start_date%' AND AlumniAcademicInfo.grad_date <= '$end_date%' )
 

 

murattkilinc murattkilinc www.instegral.com Kullanıcı
  • Üyelik 06.04.2016
  • Yaş/Cinsiyet 32 / E
  • Meslek Yazılım Uzmanı
  • Konum İzmir
  • Ad Soyad M** K**
  • Mesajlar 119
  • Beğeniler 7 / 15
  • Ticaret 0, (%0)
yetkilibiri bu sorgu da hatalı oldu. Bu seferde work status kısımlarını kafasına göre getiriyor.
 

 

www.instegral.com

murattkilinc murattkilinc www.instegral.com Kullanıcı
  • Üyelik 06.04.2016
  • Yaş/Cinsiyet 32 / E
  • Meslek Yazılım Uzmanı
  • Konum İzmir
  • Ad Soyad M** K**
  • Mesajlar 119
  • Beğeniler 7 / 15
  • Ticaret 0, (%0)
HalitCirik compost0x
 

 

www.instegral.com

yetkilibiri yetkilibiri Yazılım Uzmanı Kullanıcı
  • Üyelik 28.05.2017
  • Yaş/Cinsiyet 38 / E
  • Meslek Yazılım Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad E** Y**
  • Mesajlar 107
  • Beğeniler 41 / 41
  • Ticaret 2, (%100)
murattkilinc Sorgunun oluşmuş çıktısını gör. (echo ile ekrana yazdır.)

Buradaki her satır için OR değil AND kullandığından emin ol, parantezler vs. hatasızsa tüm koşulları doğru uyguluyor olması gerekir.
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al