Bugün yapılan işlemler için saat aralığında sorgu nasıl yaparım

Katılım
30 Temmuz 2007
Mesajlar
34
Excel Vers. ve Dili
Excel 2003 eng
Merhaba. Sql de bir tablom var. Tablodaki end_date alttablosundaki veriler saniye bazında listelenmiş durumda. yani 01/01/2007 13:18:58 gibi. Gün içinde bu tip işlemlerden yüzlerce oluyor. Ben bugün için belirli saat aralıklarında sorgu yapmak istiyorum. Yani 08:00 - 16:00 arası yapılan işlemler ve 16:00 - 00:00 arası yapılan işlemleri ayrı sorgularla bulabilmek için. Yardım edebilecek biri olursa minnettar kalırım, şimdiden teşekkürler
 

sarigozoglu

Altın Üye
Katılım
26 Eylül 2014
Mesajlar
85
Excel Vers. ve Dili
Office 365 TR-32
Altın Üyelik Bitiş Tarihi
06-01-2025
Konuyu hortlatmış olayım, yeni başlık açmaktan iyidir.
Veritabanımda, "HAREKETLER" tablosunda, "TARIH" başlığında girilen verilerden bugün girilenleri görmek istiyorum.

select * from hareketler where tarih=today()

Böyle olmaz tabi ama :) anlatmaya çalıştım işte :)
 
Katılım
4 Ocak 2010
Mesajlar
2,074
Excel Vers. ve Dili
OFFICE 2007 PRO TR - Win7 X64
Altın Üyelik Bitiş Tarihi
18.06.2019
Selamlar,

Tarih veri tipine göre where kısmı değişir.

SELECT * FROM HAREKETLER WHERE TARİH='2017-06-20'
 

sarigozoglu

Altın Üye
Katılım
26 Eylül 2014
Mesajlar
85
Excel Vers. ve Dili
Office 365 TR-32
Altın Üyelik Bitiş Tarihi
06-01-2025
Selamlar,

Tarih veri tipine göre where kısmı değişir.

SELECT * FROM HAREKETLER WHERE TARİH='2017-06-20'
:) bunu zaten yazıyorum.
her gün tarih değiştirmektense sabit bir fonksiyonla çözmeyi istemiştim.
"Today()" kısmına ne yazılabilir veya düzenlemeyi nasıl yapabilirim.
 
Son düzenleme:

sarigozoglu

Altın Üye
Katılım
26 Eylül 2014
Mesajlar
85
Excel Vers. ve Dili
Office 365 TR-32
Altın Üyelik Bitiş Tarihi
06-01-2025
Select * From HAREKET1 Where TARIH=convert(nvarchar(10),DATEADD(day,0,getdate()),104)

Çözüldü
 

sarigozoglu

Altın Üye
Katılım
26 Eylül 2014
Mesajlar
85
Excel Vers. ve Dili
Office 365 TR-32
Altın Üyelik Bitiş Tarihi
06-01-2025
Select * From HAREKET1 Where TARIH=convert(nvarchar(10),DATEADD(day,0,getdate()),104)

Çözüldü
Ancak bunu Excel altında VBA koduna yazdığımda aşağıdaki hatayı aldım.
Çözüm öneriniz var mı ?

"the conversion of a nvarchar data type to a datetime data type resulted in an out-of-range value"
 
Katılım
4 Ocak 2010
Mesajlar
2,074
Excel Vers. ve Dili
OFFICE 2007 PRO TR - Win7 X64
Altın Üyelik Bitiş Tarihi
18.06.2019
Selamlar,

Veri tabanı tarih tipi datetime siz nvarchar olarak değer giriyonuz hata ondan geliyo gibi :)

Aşağıdaki örnekleri deneyin.

--Günü Alma

Kod:
SELECT * FROM LG_006_01_STLINE WHERE DAY(DATE_)=DAY(GETDATE())
--Ayı Alma

Kod:
SELECT * FROM LG_006_01_STLINE WHERE MONTH(DATE_)=MONTH(GETDATE())
--Yılı Alma

Kod:
SELECT * FROM LG_006_01_STLINE WHERE YEAR(DATE_)=YEAR(GETDATE())
--Günün Tarihini Alma

Kod:
SELECT * FROM LG_006_01_STLINE WHERE DATE_=CONVERT(DATE,GETDATE(),104)
 

sarigozoglu

Altın Üye
Katılım
26 Eylül 2014
Mesajlar
85
Excel Vers. ve Dili
Office 365 TR-32
Altın Üyelik Bitiş Tarihi
06-01-2025
Ancak bunu Excel altında VBA koduna yazdığımda aşağıdaki hatayı aldım.
Çözüm öneriniz var mı ?

"the conversion of a nvarchar data type to a datetime data type resulted in an out-of-range value"
Aynı sorguyu excel VBA altından yapmak için, sorguyu aşağıdaki şekilde düzelttim, sorun çözüldü.

( ..............TARIH=convert(nvarchar(10),DATEADD(day,0,getdate()),101)
 
Katılım
18 Mart 2007
Mesajlar
171
Excel Vers. ve Dili
OFFICE 2016
Altın Üyelik Bitiş Tarihi
02-03-2024
Bende vade tarihi bugünden büyük olanları ADO sorguda almak istiyorum beceremedim. Yardımcı olabilecek var mı acaba? Yardımınız için şimdiden teşekkür ederim.

Kod:
sorgu = " Select  [CARİ KODU],[CARİ ÜNVAN],'',SUM([YTUTAR]),[VADESİ] AS VD,[FATURA TARİHİ]AS FT, IIF(VD <> NULL ,VD+FT,FT) AS [VADE TARİHİ], [FATURA NO]  " & _
        " From [SALES$]" & _
        " Where [FATURA TÜRÜ] in ('Satış Faturası' , 'Toptan Satış İade') AND [FATURA NO] <> NULL AND " & _
        " [VADE TARİHİ] > convert(nvarchar(10),DATEADD(day,0,getdate())) " & _
        " Group By [CARİ KODU],[CARİ ÜNVAN],[VADESİ],[FATURA TARİHİ] , [FATURA NO]  " & _
        " Order By [CARİ KODU],[FATURA TARİHİ] "
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,294
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
@emsey ;

Aşağıdaki örnekte olduğu gibi, Now() fonksiyonunu kullanın....


C#:
    strSQL = "Select [TARİH] From [Satis$] Where [TARİH] > Now() "
.
 
Katılım
18 Mart 2007
Mesajlar
171
Excel Vers. ve Dili
OFFICE 2016
Altın Üyelik Bitiş Tarihi
02-03-2024
@emsey ;

Aşağıdaki örnekte olduğu gibi, Now() fonksiyonunu kullanın....


C#:
    strSQL = "Select [TARİH] From [Satis$] Where [TARİH] > Now() "
.
Üstad TARİH bende FATURA TARİHİNE tekabül ediyor ve bunda Now() gayet iyi çalışıyor. Çünkü tabloda FATURA TARİHİ var.
Fakat benim istediğim fatura tarihi ile vadeyi toplattığım yukarıdaki verdiğim koda göre doğru sonuca ulaştığım ancak doğru yöntemle mi toplattığımı bilmediğim ancak fatura tarihi ile vadenin toplama işlemi sonucu olan [VADE TARİHİ] var. Ben vade tarihi bugünden büyük olanların tabloma gelmesini istiyorum. Yukarıdaki kodda revize edebilirsek üstad çok memnun olurum.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,294
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Şöyle bir şey olabilir....

[TARİH] alanına [VADE] alanındaki gün sayısını ilave edip, elde edilen yeni tarih bugünden büyükse [STOK KODU], [STOK AÇIKLAMA] alanlarını listele...... gibi.

C#:
    strSQL = "Select [STOK KODU], [STOK AÇIKLAMA] From [Satis$] Where DateAdd('d',[VADE],[TARİH]) > Now() "
.
 
Son düzenleme:

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,294
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
İlave olarak; eğer [VADE] alanı boş ise direkt olarak [TARİH] alanını, boş değilse [TARİH] + [VADE] ile elde edilen yeni tarihi bugünün tarihi ile karşılaştırarak [STOK KODU] ve [STOK AÇIKLAMA] verilerini listelemek için;

Kod:
 strSQL = "Select [STOK KODU], [STOK AÇIKLAMA] From [Satis$] Where IIF([VADE] Is Not Null, DateAdd('d',[VADE],[TARİH]), [TARİH]) > Now() "
.
 
Katılım
18 Mart 2007
Mesajlar
171
Excel Vers. ve Dili
OFFICE 2016
Altın Üyelik Bitiş Tarihi
02-03-2024
Şöyle bir şey olabilir....

[TARİH] alanına [VADE] alanındaki gün sayısını ilave edip, elde edilen yeni tarih bugünden büyükse [STOK KODU], [STOK AÇIKLAMA] alanlarını listele...... gibi.

C#:
    strSQL = "Select [STOK KODU], [STOK AÇIKLAMA] From [Satis$] Where DateAdd('d',[VADE],[TARİH]) > Now() "
.
Oldu üstad Allah razı olsun emeğine sağlık
 
Katılım
21 Temmuz 2023
Mesajlar
4
Excel Vers. ve Dili
2016
Selamlar,

Veri tabanı tarih tipi datetime siz nvarchar olarak değer giriyonuz hata ondan geliyo gibi :)

Aşağıdaki örnekleri deneyin.

--Günü Alma

Kod:
SELECT * FROM LG_006_01_STLINE WHERE DAY(DATE_)=DAY(GETDATE())
--Ayı Alma

Kod:
SELECT * FROM LG_006_01_STLINE WHERE MONTH(DATE_)=MONTH(GETDATE())
--Yılı Alma

Kod:
SELECT * FROM LG_006_01_STLINE WHERE YEAR(DATE_)=YEAR(GETDATE())
--Günün Tarihini Alma

Kod:
SELECT * FROM LG_006_01_STLINE WHERE DATE_=CONVERT(DATE,GETDATE(),104)
Catchmod provides many free technology apps for Android, which helps users to enjoy modern features and conveniences on their mobile phones without any cost. From professional photography applications to fast and secure web browsing, Catchmod meets the diverse and reliable needs of users.
Thanks for your support, I greatly appreciate it. This could be a great solution.
 
Üst