go backarticles

Articles of SQLschool.gr Team

Η πρώτη μέρα της βδομάδας

Fivi Panopoulou - Sotiris Karras

Αν για μια ημερομηνία θέλουμε τον αριθμό της ημέρας μέσα στη βδομάδα, θα στραφούμε στην DATEPART, θα της δώσουμε σαν όρισμα το weekday ή dw και την ημερομηνία μας και θα μας επιστρέψει αυτό που θέλουμε. Ο αριθμός αυτός που παίρνουμε με αυτό τον τρόπο όμως, εξαρτάται από το ποιά θεωρούμε ότι είναι η πρώτη ημέρα της βδομάδας. Απο πού λοιπόν ξεκινάει αυτή η αρίθμηση;

H απάντηση σε αυτή την ερώτηση έρχεται από την @@DATEFIRST configuration function και μπορεί να αλλάξει με το SET DATEFIRST. Οι αριθμοί που λαμβάνουμε και θέτουμε αντόστοιχα ξεκινάνε με την Δευτέρα να είναι το 1, την Τριτη το 2 και ούτω καθεξής.

Τρέχοντας λοιπόν το εξής:

SELECT @@DATEFIRST, DATEPART(dw, '20160412');
GO
παίρνουμε σαν αποτέλεσμα στην πρώτη στήλη 7 και στη δεύτερη 3. Αυτό σημαίνει ότι η πρώτη μέρα της βδομάδας είναι η Κυριακή και έτσι η 12/04/2016 που είναι ημέρα Τρίτη είναι η τρίτη ημέρα της βδομάδας.

Αν θέλουμε να θεωρήσουμε σαν πρώτη μέρα της βδομάδας τη Δευτέρα, τρέχουμε το παρακάτω:

SET DATEFIRST 1;
GO

Αν ξανατρέξουμε το αρχικό query οι τιμές θα είναι 1 και 2 αντίστοιχα που σημαίνει ότι η 12/04/2016 που είναι Τρίτη είναι η δεύτερη μέρα της βδομάδας. Πρέπει να τονίσουμε ότι η αλλαγή αυτή ισχύει για το session στο οποίο βρισκόμαστε, και επομένως αν ανοίξουμε ένα άλλο session η πρώτη μέρα της βδομάδας θα είναι και πάλι η Κυριακή.

Επίσης, το DATEFIRST επηρεάζεται από τη γλώσσα, οπότε η αλλαγή του Language για το session θα αλλάξει και το datefirst setting, όπως φαίνεται στο παράδειγμα παρακάτω:

 
SELECT @@LANGUAGE, @@DATEFIRST;
GO
-- returns: us_english, 7

SET LANGUAGE 'Greek';
GO
-- Η ρύθμιση γλώσσας άλλαξε σε ελληνικά.


SELECT @@LANGUAGE, @@DATEFIRST ;
GO
-- returns: ελληνικά, 1

Μπορεί κανείς να δει την αντιστοιχία της γλώσσας με τη μέρα με την οποία ξεκινάει η βδομάδα από το sys.syslanguages ως εξής:

 
SELECT langid, alias, name, datefirst
FROM syslanguages;
GO

To default datefirst που έχουμε στο session προκύπτει από το default language του session το οποίο συνήθως είναι το default language που έχει ορισθεί για το login που χρησιμοποιούμε:

“The default language for a session is the language for that session's login, unless overridden on a per-session basis by using the Open Database Connectivity (ODBC) or OLE DB APIs” [https://technet.microsoft.com/en-us/library/ms190682%28v=sql.110%29.aspx]


Fivi Panopoulou

Fivi Panopoulou

System Engineer • Speaker

Το 2007 ξεκίνησα τις σπουδές μου στη σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών στο Εθνικό Μετσόβιο Πολυτεχνείο.Κατά την διάρκεια των σπουδών μου εκεί αγάπησα τον προγραμματισμό και τα συστήματα πληροφορικής, καθώς επίσης απέκτησα το ιδιαίτερο ενδιαφέρον μου για τις βάσεις δεδομένων. Κατά την διάρκεια της διπλωματικής μου ασχολήθηκα με ζητήματα ανωνυμοποίησης δεδομένων και την ανάπτυξη σχετικού εργαλείου. Τα τελευταία χρόνια των σπουδών μου, μου δόθηκε η ευκαιρία να ασχοληθώ περισσότερο και να διευρύνω τους ορίζοντές μου ως Microsoft Student Partner και μέσω της κοινότητας Student Guru. Στα πλαίσια των κοινοτήτων αυτών, ξεκίνησα να ασχολούμαι με παρουσιάσεις αλλά και να γνωρίζω τον SQL Server. Από την πρώτη στιγμή που ασχολήθηκα μαζί του, συνειδητοποίησα πόσο ήθελα να εμβαθύνω τις γνώσεις μου σχετικά με αυτόν και τα συστήματα διαχείρισης βάσεων δεδομένων γενικότερα, πράγμα που προσπαθώ να κάνω έκτοτε. Πριν χρόνια είχα την τύχη να συμμετέχω στο πρόγραμμα mentoring, μέσω του οποίου γνώρισα τον κ. Χατζηπαυλή. Από τότε συμμετέχω στην ομάδα του SQLschool.gr.


Sotiris Karras

Sotiris Karras

System Engineer • Speaker

Είμαι απόφοιτος της σχολής Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του Εθνικού Μετσόβιου Πολυτεχνείου και στα ενδιαφέροντά μου συμπεριλαμβάνεται o τομέας του Knowledge and Data Engineering. Πιο συγκεκριμένα, έχω ασχοληθεί ακαδημαϊκά και ερευνητικά με τον τομέα του data privacy και data anonymity, ενώ πάθος μου είναι ό,τι έχει να κάνει με relational databases και data management. Στο παρελθόν, έχω συνεργαστεί με την Microsoft Hellas ως Microsoft Student Partner για ακαδημαϊκές δραστηριότητες και ήμουν μέρος του MVP mentoring προγράμματός της, στο οποίο είχα την τύχη να γνωρίσω τον κ. Χατζηπαυλή.


Relative Articles

Leave your comment

COMMENT

FULL NAME

EMAIL ADDRESS

We use Gravatar

WEB SITE



captcha


 

Newsletter

If you want to receive updates from us subscribe below with your email.
Follow us in
PASS chapter logo

The Official PASS Local Group for Greece

About us Contact us Terms of Use Privacy Sing in Register
sql school greece logo
© 2010-2020 All rights reserved

This site uses cookies for operational and analytics purposes only. By continuing to browse this site, you agree to their use.