firebird'de timestamp sahanın x dak. öncesini veren komut?
firebird'de timestamp sahanın x dak. öncesini veren komut?
firebird'de timestamp sahanın x dak. öncesini veren komut nedir?
örnek :
saha adı : zaman
tip : timestamp
veri : 11.11.2005 18:34:00
istediğim komutla 11.11.2005 18:32:00'ı getirmek istiyorum mesela.
aşağıdaki gibi bir komut olmalı:
select incMinute(zaman,-2) from tablename;
örnek :
saha adı : zaman
tip : timestamp
veri : 11.11.2005 18:34:00
istediğim komutla 11.11.2005 18:32:00'ı getirmek istiyorum mesela.
aşağıdaki gibi bir komut olmalı:
select incMinute(zaman,-2) from tablename;
Şu komutu kullanabilirsiniz:
SELECT ZAMAN, ZAMAN - 2 * 0.000694444444444444444 AS ZAMAN_2 FROM TABLENAME
(2 dakika öncesini verir)
Burada 0.000694444444444444444 aslında 1 / (24 * 60) ' a karşılık geliyor. FireBird'de bir günün sayısal karşılığı 1' dir. Yani:
SELECT ZAMAN + 1 FROM TABLENAME
ZAMAN'ın bir gün sonrasını verir.
İyi çalışmalar.
SELECT ZAMAN, ZAMAN - 2 * 0.000694444444444444444 AS ZAMAN_2 FROM TABLENAME
(2 dakika öncesini verir)
Burada 0.000694444444444444444 aslında 1 / (24 * 60) ' a karşılık geliyor. FireBird'de bir günün sayısal karşılığı 1' dir. Yani:
SELECT ZAMAN + 1 FROM TABLENAME
ZAMAN'ın bir gün sonrasını verir.
İyi çalışmalar.
bu iş için yazılmış bir komut yok mu
öncelikle teşükkürler
bahadir'a; encode olayına girersek işi çok uzatırız.
hakan'a;zamandan 0.00069444 çıkarmayı ben de düşündüm, doğrusu da o zaten ama küsüratın sonsuzluğundan dolayı sorun çıkabilir gibime geliyor.
zamandan 1/1440 çıkarayım dedim ama firebird 1/1440'ı 0 (sıfır) olarak döndürüyor. bu da başka muhabbet. bununla ilgili başka bir topic açayım.
bu arada 1 eklemenin 1 gün arttıracağını biliyorum tabi, ama benim işim dakika ile.
bahadir'a; encode olayına girersek işi çok uzatırız.
hakan'a;zamandan 0.00069444 çıkarmayı ben de düşündüm, doğrusu da o zaten ama küsüratın sonsuzluğundan dolayı sorun çıkabilir gibime geliyor.
zamandan 1/1440 çıkarayım dedim ama firebird 1/1440'ı 0 (sıfır) olarak döndürüyor. bu da başka muhabbet. bununla ilgili başka bir topic açayım.
bu arada 1 eklemenin 1 gün arttıracağını biliyorum tabi, ama benim işim dakika ile.
firebird dakka bir gol bir
öncelikle teşekkürler;
işlemciler küsüratlı işlemlerde zayıf, ayrıca sonlu küsüratlı birşeyler çıkıyor, küsüratı bir yerde kesip sayıyı öyle kullanmak, bunun kesinlikle sorun çıkarmayacağını ya da kesinlikle sorun çıkaracağını söylemek benim için çok zor. sen çok emin konuşuyorsun bence biraz sisli orası.
bu arada firebird kullandığım ilk projemdi, ama 1/x işlemini firebird'un yapamadığını görmek artı date time fonksiyonlarının yetersiz olduğunu görmek, beni dereyi geçerken at değiştirmek zorunda bırakacak.
işlemciler küsüratlı işlemlerde zayıf, ayrıca sonlu küsüratlı birşeyler çıkıyor, küsüratı bir yerde kesip sayıyı öyle kullanmak, bunun kesinlikle sorun çıkarmayacağını ya da kesinlikle sorun çıkaracağını söylemek benim için çok zor. sen çok emin konuşuyorsun bence biraz sisli orası.
bu arada firebird kullandığım ilk projemdi, ama 1/x işlemini firebird'un yapamadığını görmek artı date time fonksiyonlarının yetersiz olduğunu görmek, beni dereyi geçerken at değiştirmek zorunda bırakacak.
Kod: Tümünü seç
select 1/1440 as deneme from rdb$database
1/1440 olayını çözdük
bende firebird 1.5
1/1440 olayını çözdük.
1.0/1440.0000 vb kullanırsan oluyor
ama bu benim esas sorunumu çözmedi tabi
1/1440 olayını çözdük.
1.0/1440.0000 vb kullanırsan oluyor
ama bu benim esas sorunumu çözmedi tabi
konu şu
konu şu;
outlookdaki hatırlatıcı olayı gibi;
zaman şu diyeceğim ve beni 5 dakka önce uyar diyeceğim,
bunun için de uyarı gelen kayıtları bulacağım sqli yazmam gerekiyor. sql basit ama zamandan dakika çıkaran firebird komutu yok.
onun için zaman-1/1440 denedim.
olayı biraz kurcalayınca sizlerin de soruna kafa yormanız neticesinde zaman-1.0/1440.00000 gibi ya da zaman-0.0006944444444 gibi çözüm olabiliyor. fakat buradaki küsürat beni kıllandırıyor.
eğer firebirdde bunu yapan time fonksiyonu yoksa sorun böyle çözülecek fakat küsüratı ne kadar uzun tutmak lazım, sorusu ortaya çıkyor bu sefer.
outlookdaki hatırlatıcı olayı gibi;
zaman şu diyeceğim ve beni 5 dakka önce uyar diyeceğim,
bunun için de uyarı gelen kayıtları bulacağım sqli yazmam gerekiyor. sql basit ama zamandan dakika çıkaran firebird komutu yok.
onun için zaman-1/1440 denedim.
olayı biraz kurcalayınca sizlerin de soruna kafa yormanız neticesinde zaman-1.0/1440.00000 gibi ya da zaman-0.0006944444444 gibi çözüm olabiliyor. fakat buradaki küsürat beni kıllandırıyor.
eğer firebirdde bunu yapan time fonksiyonu yoksa sorun böyle çözülecek fakat küsüratı ne kadar uzun tutmak lazım, sorusu ortaya çıkyor bu sefer.
Zaman bilgisi içerisinden dakika değerini çekersen/EXTRACT edersen, yıl, ay, gün, saat bilgilerini de karşılaştırarak çözebilirsin belki

Kod: Tümünü seç
select extract(minute from current_timestamp) from rdb$database
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kesin konuşmamın nedeni tarih aralığının zaten sınırlı olmasından.
Dereyi geçerken at değiştirmek konusuna gelince;
"Hiç düşünme, değiştir" derim. Ki bu konu bu sitede çok tartışıldı.
Genelde FireBird'ü tavsiye ediyorlar. Bilhassa MS-SQL'e karşı birçok kişinin antisempatisi var. Ama ben şahsen MS-SQL'in ORACLE'a rağmen önünün en açık veritabanı olduğunu düşünüyorum.
Ben keşke Paradox'tan InterBase yerine direk MS-SQL'e veya ORACLE'a geçseydim diye düşünüyorum.
Tabi, bunlar benim şahsi düşüncelerim.
İyi çalışmalar.
Dereyi geçerken at değiştirmek konusuna gelince;
"Hiç düşünme, değiştir" derim. Ki bu konu bu sitede çok tartışıldı.
Genelde FireBird'ü tavsiye ediyorlar. Bilhassa MS-SQL'e karşı birçok kişinin antisempatisi var. Ama ben şahsen MS-SQL'in ORACLE'a rağmen önünün en açık veritabanı olduğunu düşünüyorum.
Ben keşke Paradox'tan InterBase yerine direk MS-SQL'e veya ORACLE'a geçseydim diye düşünüyorum.
Tabi, bunlar benim şahsi düşüncelerim.
İyi çalışmalar.
rsimsek ben dakika karşılaştırmayacağım
öncelikle teşekkürler;
bahadir ve rsimsek ben dakika karşılaştırmayacağım ben zaman karşılaştıracağım. ikisi arasında dağlar kadar fark var. bu iş encode ve decode ile olmaz, olsa bile bi dünya kod yazmak gerek.
örnek sql;
select * from tablename
where current_timestamp between (timestampfield-5dakika) and timestampfield
bahadir ve rsimsek ben dakika karşılaştırmayacağım ben zaman karşılaştıracağım. ikisi arasında dağlar kadar fark var. bu iş encode ve decode ile olmaz, olsa bile bi dünya kod yazmak gerek.
örnek sql;
select * from tablename
where current_timestamp between (timestampfield-5dakika) and timestampfield
hakan can katılıyorum
hakan can sana katılıyorum.
ben paradoxtan mysql'e geçtim.
mysql ticari uygulamalarda ücretli olduğu için ve bu forumda firebird çok övüldüğü ve de ücretsiz olduğu için bir projede onu kullanmaya karar verdim.
ama işin içine girince gel görki firebird'ün mysql'ün yanına bile yaklaşamayacağını gördüm.
mssql ve oracle tecrübem olmadı, niyetim de yok çünkü pahalılar.
bu uğraştığım projenin veritabanı maliyetinin sıfır olması gerek. ben bunu yine en iyisi paradoxa çevireyim. diğer projelerimde de mysql'e devam.
ben paradoxtan mysql'e geçtim.
mysql ticari uygulamalarda ücretli olduğu için ve bu forumda firebird çok övüldüğü ve de ücretsiz olduğu için bir projede onu kullanmaya karar verdim.
ama işin içine girince gel görki firebird'ün mysql'ün yanına bile yaklaşamayacağını gördüm.
mssql ve oracle tecrübem olmadı, niyetim de yok çünkü pahalılar.
bu uğraştığım projenin veritabanı maliyetinin sıfır olması gerek. ben bunu yine en iyisi paradoxa çevireyim. diğer projelerimde de mysql'e devam.