• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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
 
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 :)
 
Selamlar,

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

SELECT * FROM HAREKETLER WHERE TARİH='2017-06-20'
 
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:
Select * From HAREKET1 Where TARIH=convert(nvarchar(10),DATEADD(day,0,getdate()),104)

Çözüldü
 
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"
 
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)
 
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)
 
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İ] "
 
@emsey ;

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


C#:
    strSQL = "Select [TARİH] From [Satis$] Where [TARİH] > Now() "

.
 
@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.
 
Şö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:
İ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() "

.
 
Şö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
 
Geri
Üst