Προς το περιεχόμενο

SQL query για εύρεση πρώτης ημέρας του μήνα


de173

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα σε όλους και όλες.

 

Προσπαθώ να φτιάξω ένα query το οποίο θα μου δίνει την ημερομηνία της πρώτης εργάσιμης ημέρας κάθε μήνα.

 

Αυτό σημαίνει πώς:

Εάν η πρώτη εργάσιμη ημέρα είναι μεταξύ Δευτέρας ή Παρασκευής, το query θα μου δίνει την πρώτη ημέρα του μήνα, π.χ. 2009-07-01

Εάν η πρώτη εργάσιμη ημέρα είναι Σαββάτο, το query θα μου δίνει την τρίτη ημέρα του μήνα,π.χ. 2009-07-03, μιας και αυτή θα είναι η Δευτέρα.

Εάν η πρώτη εργάσιμη ημέρα είναι Κυριακή, το query θα μου δίνει την δεύτερη ημέρα του μήνα,π.χ. 2009-07-03, μιας και αυτή θα είναι η Δευτέρα.

 

Μία δεύτερη σκέψη είναι να φτιαχτεί πίνακας με όλα τα Σαββατοκύριακα, τις Αργίες, της Ελληνικές αργίες κτλ. ώστε κατά την εκτέλεση αυτού του query, να ελέγχεται και αυτός ο πίνακας για να επιτυγχάνεται ορθότερη εύρεση αυτής της ημεράς. Φυσικά αυτός ο πίνακας θα πρέπει να δημιουργείται κάθε χρόνο.

 

Εσείς τι λέτε;

Δημοσ.

Πρέπει να το κάνεις με SQL Query ? νομίζω ότι με κλασσικό προγραμματισμό θα ήταν πολύ πιο εύκολο...

Δημοσ.

@drm: Πρέπει να γίνει σε sql διότι εκεί είναι η βάση δεδομένων μου.

 

@Tmark: Δεν υπάρχει πίνακας με μήνες. Σκοπός μου είναι να βρίσκω κάθε μήνα την πρώτη εργάσιμη ημερομηνία (από Δευτέρα έως Παρασκευή) και να τις αποθηκεύσω σε έναν πίνακα.

Δημοσ.

Συνήθως σε γενικά συστήματα που μπορεί να υπάρχουν διαφορετικές αργίες υπάρχει ένας πίνακας calendar ο οποίος αρχικοποιείται με όλες τις ημέρες και ορίζονται οι εργάσιμες και οι αργίες βάσει κανόνων που έχεις θέσει.

 

---------- Προσθήκη στις 22:19 ---------- Προηγούμενο μήνυμα στις 21:46 ----------

 

Σε oracle αυτο δείχνει την επόμενη εργάσιμη για τον μήνα ΜΑΙΟ 2010 με μόνο περιορισμό τα Σαββατοκύριακα

select case

when trim(to_char(to_date('01-MAY-2010'),'DAY')) = 'SATURDAY' then to_date('01-MAY-2010')+2

when trim(to_char(to_date('01-MAY-2010'),'DAY')) = 'SUNDAY' then to_date('01-MAY-2010')+1

else to_date('01-MAY-2010')

end " First ergasimi for MAY 2010"

from dual;

Δημοσ.

σκριπτάκι που, με παράμετρο έτος Χ, υπολόγιζει όλες τις κινητές εορτές της Ελλάδας (εξαρτόνται απο το Πάσχα, source σε διαφορες γλώσσες μπορεις να βρεις ευκολα με γουγλη).

καταχωρεί ολες αυτές σε πινακα "αργίες".

επίσης καταχωρείs καρφωτά στον ιδιο πινακα, όλες τις σταθερές εορτές (πχ. 28/10).

και αλλο ενα σκριπτακι ,σαν του Aztec, που του δίνεις μήνα/έτος, και ελεγχει η 1η μερα του ειναι Σ/Κ, ή αν ειναι καταχωρημένη στον αργίες. Αν ειναι, πάει στην 2η, κ.ο.κ.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...