go backsqlschool blogs list

How to get month name in different languge (culture) within a single query

by Antonios Chatzipavlis

Αυτό που λατρεύω πραγματικά και μπορώ να πω είναι και ο λόγος που μου αρέσει να κάνω μάθημα είναι οι ερωτήσεις που δέχομαι από τους συμμετέχοντες. Χθες κατά την διάρκεια του σεμιναρίου που κάνω (10774 - Querying Microsoft SQL Server 2012) μία συμμετέχοντας έθεσε μια ερώτηση η οποία ήταν η εξής:

Η ερώτηση

"Θέλω σε ένα query το οποίο περιέχει ένα πεδίο ημερομηνίας, από αυτό το πεδίο να δείχνω το λεκτικό του μήνα σε όποια γλώσσα επιλέξω. Πως αυτό μπορεί να γίνει;"

Η απάντηση

Η απάντηση μου ήταν άμεση καθώς από τον SQL Server 2012 και μετά έχω νέα καλούδια στην T-SQL σε συνδυασμό με το προγραμματιστικό μου παρελθόν (αν και αυτό είναι σχετικό καθώς όπως λέει η παροιμία πρώτα βγαίνει η ψυχή και μετά το χούι).

Στον SQL Server 2012 έχει προστεθεί μια CLR function γνωστή σε όλους γράφουν σε .NET και δεν είναι άλλη από την FORMAT function.

Η συγκεκριμένη function πέρα από τα standard formats μπορεί να δεχθεί και custom formats (ακριβώς όπως και στο .NET). Ακόμα μπορεί να πάρει και την γλώσσα (culture). Μπορείτε να δείτε περισσότερα για αυτή την function στα BOL στο link http://technet.microsoft.com/en-us/library/hh213505.aspx.

Έτσι με το παρακάτω query

SELECT orderid, orderdate
, FORMAT( orderdate, 'MMMM', 'en-US' ) AS englishmonth
, FORMAT( orderdate, 'MMMM', 'el-GR' ) AS greekmonth
, FORMAT( orderdate, 'MMMM', 'it-IT' ) AS italicsmonth
, FORMAT( orderdate, 'MMMM', 'es-ES' ) AS spainmonth
, FORMAT( orderdate, 'MMMM', 'zh-cn' ) AS chineesemonth<
FROM Sales.Orders; GO
Έχω το επιθυμητό αποτέλεσμα

image

 

Enjoy it and keep Rocking with SQL Server Knowledge

/*antonch*/


 

Ημερομηνία: 06 November 2013 11:46
Share it:

Αφήστε το σχόλιο σας - Leave your comment

Τα σχόλια έχουν κλείσει.
Επιτρέπονται μόνο τα σχόλια από τα μέλη του SqlSchool.gr.


newsletter subscription

Εάν επιθυμείτε να λαμβάνετε ενημέρωση από εμάς, δώστε μας το e-mail σας.
PASS chapter logo
Official Professional Association for SQL Server (PASS) chapter for Greece
Join to PASS