çok araştırdım ancak tatmin edici bir sonuca ulaşamadım
sql server tarafında bir function yaptım ancak saat arası sorguda sorun çıkardığından istediğimi net olarak elde edemiyorum
vardiya tablom var
vbas vbit tanim
08:00:00 19:30:00 1.vardiya
20:00:00 07:30:00 2.vardiya
üretim bitişlerini elde ettiğim başka bir tablom var
bu bitişler içerisinden sadece saat bilgisini alarak
hangi vardiya arasında bittiğini tespit etmek istiyorum
1.vardiya arasında bitişleri doğru gösteriyor ancak
2.vardiya için sonuç gelmiyor
fonksiyon içinde kullandığım sorgum
declare @xx varchar(8)='08:31:00'
set @xx= CAST(@xx as time(7))
select Tanim from vardiya
where @xx between cast(CONVERT(varchar(50),vbas,108)as time(7)) and cast(CONVERT(varchar(50),vbit,108)as time(7))
---------------------
bu sonuç getirmiyor sorunun ikinci vardiyanin bitişi ertesi gün olduğundan baslangıç saati bitiş saatinden büyük bu sebepten mi getirmiyor?
declare @xx varchar(8)='20:31:00'
set @xx= CAST(@xx as time(7))
select Tanim from vardiya
where @xx between cast(CONVERT(varchar(50),vbas,108)as time(7)) and cast(CONVERT(varchar(50),vbit,108)as time(7))
bu sorunun üstesinden nasıl gelebilirim
iki saat arası sorgulama sorunu
- mustafasoy
- Üye
- Mesajlar: 154
- Kayıt: 02 Ağu 2013 05:00
- Konum: istanbul
- İletişim:
iki saat arası sorgulama sorunu
Nasıl ki Soru sorarak öğrendiyseniz , öğrendiklerinizi cevap vererek öğretiniz.
Re: iki saat arası sorgulama sorunu
OR kullaranak yapmanız mümkün olabilir. Öncelikle vardiyanın başlangıcının bitişinden küçük olup olmadığını kontrol edeniz.
(baslangic > bitis AND tarih between baslangic and bitis) OR (baslangic < bitis AND (tarih between baslangic AND '23:59:59' OR bitis between '00:00:00' AND bitis )
(baslangic > bitis AND tarih between baslangic and bitis) OR (baslangic < bitis AND (tarih between baslangic AND '23:59:59' OR bitis between '00:00:00' AND bitis )