
@haci, ilk tarihi elle yazmamam lazım ekrana. ben ikincisini yazdığımda sistem otomatikman 1 şubat 2015 ile şubat ayında yazdığım aralığı getirmeli.
örnek;
yazdığım; 20150217
ekrana gelmesi gereken; 20150201 ve 20150217 arasındaki tüm veriler.


Neden int haline getirme ihtiyaci duydun? Gerekli mi?


datetime üzerinden ilerleyebiliriz sorun yok.


soyle yapabilirsin tek tarih varsa elinde, ayrica search yaptigin datetime_field'in indexli olmasi gerektigini biliyorsun degil mi?
SELECT *
FROM table
WHERE (datetime_field BETWEEN DATE_FORMAT('2015-02-17','%Y-%m-01') AND '2015-02-17')


Select trunc(tarih1) -(to_number(to_char(tarih1,’DD’))-1) from dual
Oracle’da bu sekilde. Fonksiyonlarin sql server halini bulursan orda da calisir diye tahmin ediyorum
Where’ e between yukardaselectteolansey and tarih1 diye koyarsin. Tarih1i verince ikisine de bakar


girilen tarihin aynının ilk gününü mü bulmak istiyorsun? bunu DATEADD(MONTH, DATEDIFF(MONTH, 0, tarih_parametresi), 0) ile bulabilirsin.
DECLARE @TARIH_PARAMETRESI DATETIME
SET @TARIH_PARAMETRESI = '20180123' -- bu gün tamamen dahil olsun istiyorsan ve tarih alanın saat içeriyorsa FORMAT('23.01.2018 23:59:59', 'dd.MM.yyyy HH:mm:ss') şeklinde kullanmalısın
SELECT *
FROM TABLOMUZ
WHERE TARIH_ALANIMIZ BETWEEN DATEADD(MONTH, DATEDIFF(MONTH, 0, @TARIH_PARAMETRESI), 0) AND @TARIH_PARAMETRESI
