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

 

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

Adding negative values To SmallDatetime ή γιατί διαφέρει το -1 απο το +(-1)

Îåêßíçóå áðü ôï ìÝëïò raPhaeL. Τελευταία δημοσίευση από το μέλος raPhaeL στις 22-10-2004, 13:35. Υπάρχουν 0 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  22-10-2004, 13:35 350

    Adding negative values To SmallDatetime ή γιατί διαφέρει το -1 απο το +(-1)

    Έχουμε τον εξής κώδικα TSQL:
    ----------------------------------
    -- A.
    DECLARE @Dtm SMALLDATETIME
    SET @Dtm=GETDATE()
    SET @Dtm=@Dtm-1

    -- B.
    DECLARE @Dtm SMALLDATETIME
    SET @Dtm=GETDATE()
    SET @Dtm=@Dtm+(-1)
    ----------------------------------
    -- C.
    DECLARE @Dtm DATETIME
    SET @Dtm=GETDATE()
    SET @Dtm=@Dtm+(-1)

    -- D.
    DECLARE @Dtm DATETIME
    SET @Dtm=GETDATE()
    SET @Dtm=@Dtm-1
    ----------------------------------

    Στα A,C,D όλα είναι εντάξει , το Β βγάζει : Arithmetic overflow error converting expression to data type smalldatetime.

    Γιατί άραγε;

    Μάλλον γιαυτό:
    Σε όλες τις περιπτώσεις ο δεύτερος Operator γίνεται convert στο Datatype του πρώτου.
    Αναλυτικά
    A.SELECT CONVERT(SMALLDATETIME,1)
    C.
    SELECT CONVERT(DATETIME,-1)
    D.SELECT CONVERT(DATETIME,1)

    και  B.
    SELECT CONVERT(SMALLDATETIME,-1) =
    Arithmetic overflow error converting expression to data type smalldatetime.

    έτσι για να έχουμε να ασχολούμαστε ....




    Sex is like programing; One mistake, and you will have to support it for the rest of your life…
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems