FilemakerTurk, AYS Bilişim ve Beyaz Net tarafından desteklenmektedir.
Filemaker Danışmanınız
AYS Bilişim
Mehmet KAYA
 0532 231 07 27
 0216 318 55 80
 mkaya@aysbilisim.net
						

sql içinde iki tarih arasındaki bir değeri nasıl görüntüleriz ?

+2 oy
338 kez görüntülendi
Şu komutu yazdım ama çalışmadı. Acaba nerede hata yaptım ?

 Let  ([ d1 = YMDFormat ( Rapor::Başlangıç Tarihi ) ;
          d2 = YMDFormat ( Rapor::Bitiş Tarihi ) ;
    month = Rapor::Ay Metin ;
       year =  Rapor::Yıl ;
  decimal = Left ( Evaluate ( 1/2 ) ; 1 ) ;
       SQL = ExecuteSQL ( "
      SELECT  a.\"Brüt Üretim\"
      FROM \"Takvim\" a "  &
     "WHERE a.\"Yıl\" = ? AND a.\"Aylar\" = ? AND a.\"Tarih\" >= d1  AND a.\"Tarih\" <= d2"
     ; "" ; ""  ; year )] ;

 If ( SQL ; Substitute ( SQL; "." ; decimal ) ; 0 ) )
7, Ocak, 2017 SQL kategorisinde atesm59 (15,270 puan) tarafından soruldu

1 cevap

0 oy
 
En İyi Cevap

d1 ve d2 den önce tırnağı kapatıp açamak gerekiyor. yada yılda olduğu gibi ? işareti ile değişkenleri belirlemek daha kolay oluyor.

Mesela;

ExecuteSLQ ( ...  "WHERE a.\"Yıl\" = ? AND a.\"Aylar\" = ? AND a.\"Tarih\" >= ?  AND a.\"Tarih\" <= ? "
     ; "" ; ""  ; year; ay; d1 ; d2 )

 

Bu arada genelde alan isimlerini tırnak içinde yazmasınız da kabul ediyor. Alan isminin başında alt tire olduğunda yada Türkçe karakter içerdiği durumda tırnak içine almak gerekiyor.

8, Ocak, 2017 F. Osman Cabi (197,900 puan) tarafından cevaplandı
8, Ocak, 2017 Recep Güney tarafından seçilmiş
Yukarıdaki şekli uyguladım. Sonuç sıfır(0). ? işaretinden iyidir ama yetmiyor.

Acaba tarih formatıyla mı ilgili ? YMDFormat ile filemaker tarihini(17.12.2016), sql formatı olan 2016-12-17'ye çeviriyorum.

Sonuçta halen olmadı...
Evet çözdüm. d1 ve d2 filemaker yani orijinal formatta olması gerekiyormuş.
...