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

 

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

Λύστε μου την απορία

Îåêßíçóå áðü ôï ìÝëïò Αλέξανδρος Δημητρίου. Τελευταία δημοσίευση από το μέλος Αλέξανδρος Δημητρίου στις 24-01-2008, 21:07. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  24-11-2007, 16:33 37693

    Λύστε μου την απορία

    Μπορεί να μου πεί κάποιος γιατί το συγκεκριμένο scriptaki αρχίζει να εκτελείται και δεν τελειωνει ποτέ?

    If (Select Substring('24/11',1,2)) = (Select Convert(VarChar (2) , day(getdate()))) and
    (Select Substring('24/11',4,5)) = (Select Convert(VarChar (2) , Month(getdate())))
    print 'hello'

     

    ενώ αν του βαλω or εκτελείται αμέσως?

     

    Το πιο περίεργο απ'ολα:::Σε άλλο Pc εκτελείται...............


    Αυτοί που ζουν γενναίοι είναι ενάρετοι,κάνουν ένδοξες πράξεις και πέθαινουν αιώνια ξακουστοί....
    Μ.Αλέξανδρος...IV Crusade...
    Δημοσίευση στην κατηγορία:
  •  24-11-2007, 17:34 37695 σε απάντηση της 37693

    Απ: Λύστε μου την απορία

    Προφανώς κάποια από τις δύο συνθήκες είναι ψευδής και προφανώς έχει να κάνει με την ημερομηνία που σου επιστρέφει ο υπολογιστής. έλεγξε τι σου επιστρέφουν οι day(getdate()) και Month(getdate()) και πές μας


    View Παναγιώτης Χαραλάμπους's profile on LinkedIn
    Coding at Mediterranean Acoustics
  •  16-01-2008, 11:28 39228 σε απάντηση της 37693

    Απ: Λύστε μου την απορία

    ειναι substring('24/11',4,2) kai oxi Substring('24/11',4,5) νομίζω...

  •  16-01-2008, 12:30 39235 σε απάντηση της 37693

    Απ: Λύστε μου την απορία

    Μήπως το εκτέλεσες μέσα σε transaction μαζί με τίποτε άλλο? Ούτε σε εμένα έχει πρόβλημα.

    Το query το ίδιο όμως έχει πρόβλημα. Είναι περιττές οι πολλές μετατροπές σε varchar με αποτέλεσμα να βγαίνει πολύ πιο αργό απ' ότι χρειάζεται. Μπορείς να γράψεις το παρακάτω:

    If (Substring('16/1',1,2) = day(getdate()) and (Substring('16/1',4,5) = Month(getdate())))
    print 'hello'

    Άφησα το Substring('16/1',4,5) γιατί η Subscring θα επιστρέψει '1' επειδή δεν θα βρει άλλους χαρακτήρες. Αν όμως είχες περάσει ολόκληρη ημερομηνία, π.χ. 16/1/2008 θα είχες πρόβλημα. Δοκίμασε να δεις τα execution plans των δύο statements και θα δεις ότι το δεύτερο γίνεται ένα απλό βήμα ενώ αυτό που είχες γράψει 3 βήματα.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  24-01-2008, 21:07 39537 σε απάντηση της 39235

    Απ: Λύστε μου την απορία

    Φιλε παναγιώτη σε ευχαριστώ παρα πολύ!


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