Πρέπει να καταλάβεις ότι ο τελεστής LIKE δουλεύει ΜΟΝΟ με strings. Ένα πεδίο datetime ΔΕΝ είναι string. Μόνο αν το μετατρέψεις εσύ σε string π.χ. με την CAST ή την CONVERT θα γίνει string. Αν το κάνεις όμως αυτό θα έχεις σαν αποτέλεσμα άθλιες επιδόσεις, καθώς ο SQL Server θα αναγκαστεί να ελέγξει μία-μία όλες τις εγγραφές στη βάση, να τις μετατρέψει σε string και μετά να κάνει τη σύγκριση.
Άσε που δεν έχει ΚΑΝ νόημα το LIKE σε ημερομηνία. Με τί συγκρίνεις? Τί είναι το 2? Ημέρα? Μήνας? Χιλιετία? Γιατί θεωρείς ότι αν μετατρέψεις ένα datetime σε string, θα μετατραπεί σε κάποιο format όπου η χιλιετηρία θα είναι στην αρχή?
Αν θέλεις να βρεις όλες τις ημερομηνίες από 1/1/2000 και μετά, γράψε ακριβώς αυτό. Where HD_dMeetingDate >= '20000101'. Η μορφή yyyymmdd μετατρέπεται αυτόματα σε datetime χωρίς να υπάρχει ασάφεια στο ποιό κομμάτι είναι ημερομηνία, μέρα ή μήνας. Η σύγκριση που γίνεται είναι μεταξύ ημερομηνιών και όχι strings. Και επειδή δεν πειράζεις την τιμή του HD_dMeetingDate, ο SQL Server μπορεί να χρησιμοποιήσει άνετα όποιο index υπάρχει σε αυτή τη στήλη αι να σου επιστρέψει γρήγορα τα αποτελέσματα.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos