Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Where month = 06

[es] :: Oracle :: Where month = 06

[ Pregleda: 5413 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Where month = 0601.07.2014. u 10:18 - pre 118 meseci
Code:
SELECT * FROM CUST
WHERE DATE BETWEEN to_date('01.06.2014','dd.mm.yyyy') and to_date('30.06.2014','dd.mm.yyyy')


S obzirom da mi je smaranje svaki put da brojim koji mesec ima koliko dana, a ne mogu za sve mesece da stavim da se zavrsavaju sa 31 jer dobijam gresku da taj datum ne postoji.

Postoji li neka jednostavnija varijanta tipa

where mm = 06 ili slicno?

 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3441

Jabber: djoka_l


+1460 Profil

icon Re: Where month = 0601.07.2014. u 10:29 - pre 118 meseci
to_char(datumska_varijabla, 'mm') vraća mesec.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3441

Jabber: djoka_l


+1460 Profil

icon Re: Where month = 0601.07.2014. u 10:54 - pre 118 meseci
Osim ovoga, postoji i funkcija LAST_DAY(datum) koja daje poslednji dan u mesecu za zadati datum, kao i funkcija EXTRACT koja ti daje mesec: EXTRACT(MONTH FROM datum)
 
Odgovor na temu

darkosos
Darko Šoš
Beograd

Član broj: 5053
Poruke: 1131
46.240.140.*



+64 Profil

icon Re: Where month = 0601.07.2014. u 11:14 - pre 118 meseci
Ili npr:
Code:
SELECT * FROM CUST
WHERE trunc(DATE,'MONTH') = to_date('06.2014','mm.yyyy')
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3441

Jabber: djoka_l


+1460 Profil

icon Re: Where month = 0601.07.2014. u 11:24 - pre 118 meseci
Uzgred, BETWEEN varijanta je zgodna ako je datumsko polje indeksirano i ako želiš da upit koristi taj indeks.
 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: Where month = 0602.07.2014. u 05:07 - pre 118 meseci
darkosos, to je to sto me bas interesovalo, hvala!

djoko, super za last_day, i to mi je par puta trebalo, nisam znao da postoji ta mogucnost.

 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: Where month = 0603.12.2014. u 09:54 - pre 113 meseci
Mnogo mi je pomoglo ovo, a s obzirom da se uglavnom radi o izvestajima za tekući mesec, uradio sam ovako.
Code (sql):

AND TRUNC(IA.INVOICE_DATE,'MONTH') = TRUNC(SYSDATE, 'month')


Kako sad to što jednostavnije da modifikujem da bude za prošli mesec?
 
Odgovor na temu

Raspucin

Moderator
Član broj: 20699
Poruke: 216
*.61.167.36.host.de.colt.net.

ICQ: 244452581


+3 Profil

icon Re: Where month = 0603.12.2014. u 10:08 - pre 113 meseci
Code:

AND TRUNC(IA.INVOICE_DATE,'MONTH') = TRUNC(ADD_MONTHS(SYSDATE,-1), 'month')


Pozdrav.
 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: Where month = 0603.12.2014. u 12:29 - pre 113 meseci
hvala :)


Sad sam se još više upetljao u ove stvari. Sjajno je i puno toga može da mi automatizuje da ne menjam neke izveštaje svakog meseca.

Potrebna mi je slična stvar ali za tekući mesec bez današnjeg dana.

Odradio sam ovako
Code (sql):
AND ia.invoice_date BETWEEN trunc(sysdate,'MM') AND trunc(sysdate-1)


Ali šta će biti kad bude bio prvi dan u mesecu? :)

I sad sam iskomplikovao nešto sa ovim
Code (sql):
AND CASE WHEN trunc(sysdate,'MM') = sysdate THEN TRUNC(IA.INVOICE_DATE,'MONTH') = TRUNC(SYSDATE, 'month') ELSE ia.invoice_date BETWEEN trunc(sysdate,'MM') AND trunc(sysdate-1)


izbacuje mi grešku na drugom znaku "=" po redu
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.static.isp.telekom.rs.



+3 Profil

icon Re: Where month = 0603.12.2014. u 13:34 - pre 113 meseci
Ne ide to tako, CASE vraća vrednost a ne izraz.
Owl
 
Odgovor na temu

Raspucin

Moderator
Član broj: 20699
Poruke: 216
*.61.167.35.host.de.colt.net.

ICQ: 244452581


+3 Profil

icon Re: Where month = 0603.12.2014. u 14:50 - pre 113 meseci
Citat:
CoyoteKG:

Potrebna mi je slična stvar ali za tekući mesec bez današnjeg dana.



Šta bi ti taj izveštaj vratio ako se izvrši prvog u mesecu ako je bez tog dana?

 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: Where month = 0603.12.2014. u 16:38 - pre 113 meseci
Ne znam. Videcu tek prvog.
Pretpostavljam da bi pukao izvestaj prilikom izvrsavanja.

 
Odgovor na temu

Raspucin

Moderator
Član broj: 20699
Poruke: 216
..110.68.dynamic.cablesurf.de.

ICQ: 244452581


+3 Profil

icon Re: Where month = 0603.12.2014. u 19:42 - pre 113 meseci
Logično bi bilo (po mom mišljenju) da dobiješ podatke od početka meseca do tog trenutka, ali ako se traži da tekući dan bude isključen, onda tamo odakle se poziva taj izveštaj stavi da za tekući mesec nema podataka i zabrani pozivanje tog izveštaja prvog u mesecu za tekući mesec.
U svakom slučaju, bolje obradi slučaj nego da čekaš da vidiš šta će da se desi.
 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: Where month = 0603.12.2014. u 22:22 - pre 113 meseci
I meni se cini da bi bilo logicno, Ali videcemo.
Doduse mogao bih rucno da stavim u upit recimo

Code (sql):
 BETWEEN to_date('01.12.2014','dd.mm.yyyy') AND to_date('30.11.2014','dd.mm.yyyy')

pa da vidim sta ce da se desi :)


Odradicu prvog rucno taj izvestaj kao i do sada, ali cu probati i sa ovim gore da vidim da li ce biti greske
 
Odgovor na temu

Raspucin

Moderator
Član broj: 20699
Poruke: 216
..110.68.dynamic.cablesurf.de.

ICQ: 244452581


+3 Profil

icon Re: Where month = 0603.12.2014. u 22:41 - pre 113 meseci
Citat:
CoyoteKG
pa da vidim sta ce da se desi :)


Pa desiće se da će taj between da ti da vreme zadnjeg dana novembra.

Code:

SQL> select to_char(to_date('01.12.2014','dd.mm.yyyy'), 'DD.MON.YYYY HH24:MI:SS')  as datum from dual;

DATUM
--------------------
01.DEC.2014 00:00:00


Funkcija to_date('01.12.2014','dd.mm.yyyy') daje vreme do ponoći "01.DEC.2014" odnosno od početka dana, tako da vreme na taj dan nije obuhvaćeno. Imaš gore primer kako možeš da se igraš sa datumima i upitima pa proveri tačno šta ti koja funkcija i uslov vraćaju pre nego što uglaviš to negde da mrda. Za slučaj da ne znaš, tip podatka DATE sadrži i vreme, samo što se ono po default-u ne prikazuje u rezultatima upita.


 
Odgovor na temu

[es] :: Oracle :: Where month = 06

[ Pregleda: 5413 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.