şimdi elimdeki veride tarihler. 542 bin satır. DATETIME şeklinde. Ben bunları int hale getirip yan kolona yazdırdım.iş şurada karışıyor; siz mesela 20150217 yazınca ekrana 20150201 ve 20150217 arasındaki bütün tabloyu getirsin istiyorum. yani yazdığınız tarih ile o ayın ilk günü arasındaki veri gelsin.Bunu nasıl yapabilirim? ssis ile olur.




 

@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.

kırmızıgözlüağaçkurbağasıyeşili

Neden int haline getirme ihtiyaci duydun? Gerekli mi?

fakyoras

datetime üzerinden ilerleyebiliriz sorun yok.

kırmızıgözlüağaçkurbağasıyeşili

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')

hacilaklak

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

fakyoras

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

altinci nesil caylak
1

mobil görünümden çık