
20-02-11, 16:55
|
 | Διαχειριστής Όνομα: Τάσος Φιλοξενιδης Έκδοση λογισμικού Office: Ms-Office 365 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική | | Εγγραφή: 21-10-2009
Μηνύματα: 2.035
| |
Καλησπέρα σε όλους!
Θα περιγράψω κι εγώ με τη σειρά μου ακόμα μια από τις πολλές λύσεις που μας προσφέρονται στην Access:
Έστω ότι στον πίνακα με το όνομα table1 έχουμε τα εξής πεδία: - ID (Αναγνωριστικό)
- StartDate (ημερομηνία)
- EndDate (ημερομηνία)
Σε ένα ερώτημα περνάμε τον παρακάτω κώδικα SQL: Κώδικας: SELECT table1.ID, table1.StartDate, table1.EndDate, IIf([StartDate] Is Null Or [EndDate] Is Null,"",
DateDiff("yyyy",[StartDate],[EndDate])-IIf(Format([StartDate],"mmdd")>Format([EndDate],"mmdd"),1,0)) AS Years,
IIf([StartDate] Is Null Or [EndDate] Is Null,"",IIf(Day([StartDate])<=Day([EndDate]),DateDiff("m",[StartDate],[EndDate])
-[Years]*12,DateDiff("m",[StartDate],[EndDate])-[Years]*12-1)) AS Months, IIf([StartDate] Is Null Or [EndDate] Is Null,"",
DateDiff("d",DateAdd("m",[Months],DateAdd("yyyy",[Years],[StartDate])),[EndDate])) AS Days, IIf([StartDate] Is Null Or
[EndDate] Is Null,"",IIf([StartDate]>[EndDate],"Λάθος καταχώρηση ημερομηνιών!",Switch([Years]=0,"",[Years]=1,
[Years] & " έτος",[Years]>1,[Years] & " έτη") & Switch([Years]=0,"",[Years]>0 And [Months]>0 And [Days]=0," και ",
[Years]>0 And [Months]>0,", ") & Switch([Months]=0,"",[Months]=1,[Months] & " μήνας",[Months]>1,
[Months] & " μήνες") & Switch([Months]=0 And [Years]=0,"",([Months]>0 Or [Years]>0) And [Days]>0," και ",[Months]
>0 Or [Years]>0,"") & Switch([Days]=0,"",[Days]=1,[Days] & " ημέρα",[Days]>1,[Days] & " ημέρες"))) AS FullText
FROM table1;
Το ερώτημα αυτό μας επιστρέφει και τους αριθμούς των Ετών, μηνών και ημερών που πηγάζουν από τη διαφορά των ημερομηνιών καθώς και την απόδοση τους σε συμβολοσειρά.
Φιλικά
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών
Τελευταία επεξεργασία από το χρήστη Tasos : 20-02-11 στις 19:54.
|