tarih fonksiyonu

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
yastik
Üye
Mesajlar: 71
Kayıt: 01 Ağu 2003 05:26
İletişim:

tarih fonksiyonu

Mesaj gönderen yastik »

slm.
iki tarih arasındaki tarihleri nasıl getirebilirim
sadece sql veya sql bir (stored procedure)fonksiyonda olabilir
ALi ÇELİK
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

selam,

sorunu biraz daha açabilir misin?

Eğer SQL ile istiyorsan forumda çok örneği var, ayrıca sitede bu konuda makale var. Genel format şu şekildedir.

Kod: Tümünü seç

SELECT *
FROM TABLO_ISMI
WHERE TARIH BETWEEN '01.01.2004' AND '01.09.2004'
Kolay gelsin.
Kullanıcı avatarı
yastik
Üye
Mesajlar: 71
Kayıt: 01 Ağu 2003 05:26
İletişim:

tarih fonksiyonu

Mesaj gönderen yastik »

bu tarihler herhangi bir tablooda yok :roll:
yani bütün tarihlerin olduğu bir tablo oluşturmadan yapmak mümkün mü?
ALi ÇELİK
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Siz zaten iki tarih aralığı verdiğinizde (Between kullanarak) sorguyu o iki tarih arasındaki bütün tarihler için çalıştırır.
Kullanıcı avatarı
yastik
Üye
Mesajlar: 71
Kayıt: 01 Ağu 2003 05:26
İletişim:

tarih fonksiyonu

Mesaj gönderen yastik »

between kullanmadan önce from kullanmak lazım fakat tarihler herhangi bir tablodan gelmiyor. o yüzden klasik sql ile yapılamaz
ALi ÇELİK
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
Arkadaş valla ben sorundan bişiycik anlamadım. :cry: :roll:
Akşam üzeri bi rehavet çöktü herhalde.
ne yapmak istediğiniz biraz daha açık söleyebilirmisin?
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Arifceylan28
Üye
Mesajlar: 298
Kayıt: 19 Tem 2004 01:45
Konum: Giresun/Samsun

Mesaj gönderen Arifceylan28 »

Sizin veritabanınızda tarih isimli bi alan var mı?Eğer varsa adminin gönderdiği kodla bunu yapabilirsiniz.Kod veritabanında TARİH isimli bi alan olduğu ve veritabanı isminin de TABLO_ISMI olduğu varsayılarak yazılmıştır.

Anlatmak istediğinizi biraz daha açık anlatırsanız iyi olur.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

İstediğin türden hazır bir fonksiyon fonksiyon falan yok sqlserverda. Ama ben bir fonksiyon yazdım. Bu işini görür.

Kod: Tümünü seç

CREATE FUNCTION TarihBul (@BEGDATE datetime,@ENDDATE datetime)
RETURNS @TTarih TABLE (Tarih datetime)

AS
BEGIN
DECLARE @Temp TABLE (Tarih datetime)
	
	WHILE @BEGDATE < @ENDDATE 
	BEGIN		
		insert @Temp
  		SELECT DATEADD(dd,1,@BEGDATE)
		SELECT @BEGDATE = DATEADD(dd,1,@BEGDATE)
	END
	insert @TTarih Select * From @Temp
	RETURN
END
Kullanımı:

Kod: Tümünü seç

select * from TarihBul('01.01.2004','08.01.2004')
Kullanıcı avatarı
yastik
Üye
Mesajlar: 71
Kayıt: 01 Ağu 2003 05:26
İletişim:

tarih fonksiyonu

Mesaj gönderen yastik »

çok güzel elinize sağlık
ALi ÇELİK
Kullanıcı avatarı
yastik
Üye
Mesajlar: 71
Kayıt: 01 Ağu 2003 05:26
İletişim:

tarih fonksiyonu

Mesaj gönderen yastik »

Aha buda postgresql için olanı

Kod: Tümünü seç

CREATE OR REPLACE FUNCTION "public"."roomsolddates" (date,date) RETURNS SETOF "pg_catalog"."record" AS'

declare
      _date1 date;
      _date record;

begin

 _date1:=$1;

CREATE TEMP TABLE datetable (_datestable DATE);

     WHILE _date1<$2 LOOP

          _date1:=_date1::DATE + ''1 days''::INTERVAL;

           insert into datetable values (_date1);

     END LOOP;


    for _date in SELECT * from datetable loop
        return next _date;
    end loop;

DROP TABLE datetable;
return null;

end;
'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
ALi ÇELİK
Cevapla