Ο 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