Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

PostgreSql interval data type to Sql Server data type

Îåêßíçóå áðü ôï ìÝëïò Markos. Τελευταία δημοσίευση από το μέλος Markos στις 20-03-2012, 14:06. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  19-03-2012, 16:21 69715

    PostgreSql interval data type to Sql Server data type

    Αυτές τις ημέρες δουλεύω με το schema μιας βάσης σε PostgreSql και έχω κολλήσει στο πως να χειριστώ το interval data type. Πρόκειται για ατομικό project, άρα όχι κάτι βιαστικό, αλλά μιας και αποφάσισα να πειραματιστώ είπα να το κάνω σωστά. Δε θέλω να χρησιμοποιήσω κάποιο data type κειμένου (varchar, nvarchar κ.λπ), αλλά ελλείψει αντίστοιχου type από τον Sql Server δε βλέπω να έχω πολλές επιλογές. Αυτό που με παραξενεύει είναι ότι ενώ το framework διαθέτει TimeSpan structure, ο Sql Server δεν έχει κάτι ανάλογο.

    Κάποια πρόταση;

    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  19-03-2012, 19:24 69721 σε απάντηση της 69715

    Απ: PostgreSql interval data type to Sql Server data type

    Ακριβώς ίδιος τύπος δεν υπάρχει - υπάρχει μια συζήτηση που μπορείς να δεις, που προτίνει πως μπορείς να αποθηκεύσεις το TimeSpan στον Sql Server.

    Πιστεύεις ότι μπορεί να βοηθήσει;

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  19-03-2012, 21:18 69724 σε απάντηση της 69721

    Απ: PostgreSql interval data type to Sql Server data type

    Το Time data type θα μπορούσε να βοηθήσει αν το χρονικό διάστημα είναι μικρότερο της μίας ημέρας. Μέχρι στιγμής το καλύτερο που μπορώ να σκεφτώ είναι να το σώζω σαν πεδίο κειμένου και να κάνω parse το string. Γι' αυτό που σκοπεύω να κάνω δεν είναι και τόσο μεγάλο το πρόβλημα. Ρώτησα, όμως, μήπως υπάρχει καλύτερη προσέγγιση στην περίπτωση που μου χρειαστεί στο μέλλον σε κανονικό project...

    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  20-03-2012, 12:40 69730 σε απάντηση της 69724

    Απ: PostgreSql interval data type to Sql Server data type

    Ο SQL Server είναι γενικώς κάπως .... περιορισμένος σε θέματα τύπων, ή δημιουργίας νέων τύπων. Αυτό που σε άλλες βάσεις είτε υποστηρίζεται απευθείας, είτε μπορεί να δημιουργηθεί με ένα νέο τύπο σε SQL, στον SQL Server απαιτεί τη χρήση CLR types και τον ανάλογο πονοκέφαλο στο deployment.

    Το interval δεν είναι μία απλή περίπτωση του τύπου "κάνω serialize το Time ή το Timespan", καθώς τίθενται και θέματα ακρίβειας (άλλο 365 μέρες, άλλο 1 χρόνος), αριθμητικής (πως προσθέτω date και interval), indexing. Επιπλέον το Timespan αναφέρεται αποκλειστικά σε ημέρες ενώ το interval αναφέρεται σε χρόνια, μήνες, ημέρες κλπ.

    Δυστυχώς, στον τομέα αυτό ο SQL Server έχει (μεγάλη) τρύπα. Η μόνη ολοκληρωμένη λύση είναι να φτιάξεις εσύ ένα interval UDT που θα αναπαριστά την πληροφορία που θέλεις, θα κάνει το σωστό sorting και θα επιτρέπει τις κατάλληλες πράξεις και μετατροπές.

    Η εναλλακτική χακιά, είναι να δημιουργήσεις το δικό σου string format και τα αντίστοιχα user-defined functions για το parsing και αριθμητική, για να μπορέσεις να χρησιμοποιήσεις σωστά τα δεδομένα σε SQL.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  20-03-2012, 14:06 69733 σε απάντηση της 69730

    Απ: PostgreSql interval data type to Sql Server data type

    Το interval είναι ένα type που μου τράβηξε αμέσως την προσοχή. Κατά καιρούς έχω δει κι άλλα, αλλά δεν είχα δώσει τόση σημασία. Το συγκεκριμένο type μπορεί να σου λύσει τα χέρια σε πολλά σενάρια και απορώ πως η Microsoft το έχει αγνοήσει. Μπορεί να διαφωνήσετε, αλλά πιστεύω ότι το interval είναι πιο σημαντικό από το hierarchyid. Βέβαια, όχι από μόνο του, αλλά σε συνδυασμό με ένα σύνολο από functions που θα εκμεταλλεύονται την ύπαρξή του. Στο παράδειγμα του χρόνου, εγώ θα έβαζα τον μήνα. Άλλο ένας μήνας, ειδικά αν είναι Φλεβάρης, κι άλλο 30 ημέρες. Ακόμα, θα ήθελα να έχω συγκρίσεις μεταξύ χρονικών περιόδων. Υπάρχει αλληλεπικάλυψη ή όχι; Αν όχι, πόση είναι η απόστασή τους; Και ποιος είναι ορισμός της απόστασης; Επίσης, χρειάζονται functions για να σπάσεις ή να ενώσεις δύο ή περισσότερες περιόδους (π.χ. να απαλλαγείς από τα Σαββατοκύριακα και τις αργίες). Κι ένα σωρό άλλα functions για συγκρίσεις και ταξινομήσεις (ήδη με έπιασε πονοκέφαλος). Τι ωραία θα ήταν να τα έχουμε όλ' αυτά σε T-SQL!!

    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems