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

 

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

help with mssql datetime difference from now

Îåêßíçóå áðü ôï ìÝëïò Johnnyxp64. Τελευταία δημοσίευση από το μέλος Johnnyxp64 στις 28-10-2010, 17:09. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  28-10-2010, 15:59 60698

    help with mssql datetime difference from now

    Καλησπερα

    σε ενα πινακα εχω δεδομενα που εχουν πεδιο με date-time 
    πως μπορω να κανω ένα WHERE ώστε να φερω μόνο τις εγγραφές που εχουν στο πεδιο αυτο χρονο που έχει περάσει κατα 10λεπτα απο τον χρόνο του συστήματος τωρα?

    το γραφω ως ψευδογλωσα ωστε να ειναι ποιο κατανοιτο,
    ψαχνω για κατι τετοιο "...WHERE [NowDateTime] - [datetiemcol] =>10mins"

    σας ευχαριστω.


    This Business Is Binary. You are a 1 or a 0. Alive or Dead.-
  •  28-10-2010, 16:15 60699 σε απάντηση της 60698

    Απ: help with mssql datetime difference from now

    Μπορείς να χρησιμοποιήσεις ένα συνδυασμό των T-SQL συναρτήσεων DATEADD και DATEDIFF. 

    Η DATEADD προσθέτει οποιαδήποτε μονάδα καθορίσεις στην ημ/νία που θα της δώσεις.
    Για να προσθέσεις λοιπόν 10 λεπτά στην τρέχουσα ημ/νια και ώρα, την οποία μπορείς να λάβεις από την συνάρτηση getdate(), κάνεις το εξής:

    select dateadd (minute, 10,getdate())

    Τώρα εσύ θέλεις να βρείς όλα τα πεδία τα οποία έχουν ενημερωθεί τα τελευταία 10 λεπτά. Δηλαδή, ουσιαστικά, που η διαφορά μεταξύ της ημ/νίας-ώρας ενημέρωσης και της τιμής που αναφέραμε πιό πάνω, είναι μικρότερη από 10 λεπτα.

    Η datediff κάνει αυτό που θέλεις συγκρίνοντας δύο ημ/νίες ως προς τη μονάδα μέτρησης που της παρέχεις και δίνοντάς σου τη διαφορά.
    Ετσι, για να κάνεις αυτό που ζητάς κάνεις τα εξής:

    WHERE datediff (minute, dateadd(minute,10,getdate()), yourdate) <=10

    οπου yourdate είναι το πεδίο το οποίο θέλεις να ελέγξεις.

    (ελπίζω να το έγραψα σωστά :) )

    Περισσότερα για τη datediff: http://msdn.microsoft.com/en-us/library/ms189794.aspx
    Περισσότερα για τη dateadd: http://msdn.microsoft.com/en-us/library/ms186819.aspx


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  28-10-2010, 16:40 60701 σε απάντηση της 60699

    Απ: help with mssql datetime difference from now

    δεν καταλαβαινω γιατι μου προτεινεις να βαλω το +10λεπτα απο τωρα? δεν θελω κατι τετοιο.
    αυτο ομως που ειναι ποιο απλο, και θελω οχι τα τελαυταια δεκα λεπτα αλαλ οσα ειναι πανω απο 10λεπτα!

    DATEDIFF (MINUTE, vDate,getdate()) >=10


     ειναι μαλλον που θελω!

    δηλαδη αν υπαρχουν εγγραφες που εχουν διαφορα απο τωρα και την ωρα τους πανω απο 10λεπτα!
    αν σου πω την εφαρμογή θα ειναι ποιο καθαρο τι θελω.
    φαντασου οτι οι χρηστες κανουν post θεματα σε μια βαση!
    και απο πισω υπαρχουν support people που πρεπει να απανταν οσο ποιο άμεσα γινετε στα ερωτηματα τους-Posts.

    θελω να αλλαζω εγω το χρωμα στις εγγραφες που εχουν γινει post πανω απο 10λεπτα πριν, αρα να τις θεωρω καθηστερημενες και να πρεπει να δωθει προτεραιοτητα!

    αν αυτο που γραφω η δεν κανει η το καταλαβα λαθος αυτο που λες σε παρακαλώ διορθωσεμαι. 

    σε αυχαριστω πολυ για την λυση!



    This Business Is Binary. You are a 1 or a 0. Alive or Dead.-
  •  28-10-2010, 16:50 60702 σε απάντηση της 60701

    Απ: help with mssql datetime difference from now

    Ουπς. Εχεις δίκιο. Totally wrong, start to end. :) Δεν πρέπει να γράφω posts όταν έχω πολύ δουλεια.

    Η datediff νομίζω οτι σου αρκεί, όντως.




    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  28-10-2010, 17:09 60703 σε απάντηση της 60702

    Απ: help with mssql datetime difference from now

    μια χαρα με βοήθησε κι ας ηταν λαθος το αποτέλεσμα η προσέγγισει ηταν σωστή! σε ευχαριστώ ξανά.
    This Business Is Binary. You are a 1 or a 0. Alive or Dead.-
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems