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

 

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

αλλαγη απο varchar σε datetime

Îåêßíçóå áðü ôï ìÝëïò nikosv. Τελευταία δημοσίευση από το μέλος nikosv στις 19-06-2006, 17:45. Υπάρχουν 14 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  14-06-2006, 19:12 14025

    Crying [:'(] αλλαγη απο varchar σε datetime

    έχω έναν πίνακα σε μορφή .ΤΧΤ (στοιχειά από τηλεφωνικό κέντρο)
    και θέλω να τα συνδέσω με την  SQL
     και πολύ εύκολα το μετέφερα με το Local Packages
    έλα που η ημερομηνία είναι σε μορφή varchar και όχι date (13.05.2006 ούτε καν 13/05/2006)

    πως  θα μετατρέψω  τα δεδομένα   ?

    το μόνο που κατάφερα ειναι απλα την εμφάνιση τους με

     REPLACE(dbo.CompanyPhones.dates, '.', '/')

    αλλα δεν γινεται σωστη ταξινόμηση


    οεο......12 ώρες πάνω στο PC και  κεφαλή κουδούνι



    εύχομαι να έχω δώσει να καταλάβεται τι θέλω


    ευχαριστώ   










  •  15-06-2006, 02:41 14030 σε απάντηση της 14025

    Απ: αλλαγη απο varchar σε datetime

    Αφού κάνεις το REPLACE θα πρέπει να το κάνεις και CAST απο varchar σε datetime ώστε να κάνει σωστή ταξινόμηση.
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  15-06-2006, 11:33 14035 σε απάντηση της 14030

    Angry [:@] Απ: αλλαγη απο varchar σε datetime

    αν ρωτησω τι ειναι το CAST και πως το κανουν ?

  •  15-06-2006, 13:03 14041 σε απάντηση της 14035

    Απ: αλλαγη απο varchar σε datetime

    Διάβασε στο παρακάτω link τι ακριβώς κάνει το CAST και το CONVERT
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ca-co_2f3o.asp
    Εσένα θα είναι κατι σαν
    SELECT CAST(REPLACE(CompanyPhones.dates'.','/') AS datetime) AS myDate
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  17-06-2006, 13:08 14093 σε απάντηση της 14025

    Απ: αλλαγη απο varchar σε datetime

    δεν καταφερα τιποτε.

  •  17-06-2006, 14:11 14094 σε απάντηση της 14093

    Απ: αλλαγη απο varchar σε datetime

    Η τελευταία απάντηση ήταν μάλλον ασαφής. Τί συνέβει δηλαδή? Εμφανίστηκε κάποιο μήνυμα λάθους? Δεν επιστράφηκαν οι τιμές που περίμενες?

    Αν εννοείς ότι η ταξινόμηση δεν πέτυχε, θα πρέπει να έχεις βάλει cast και στο order by για να γίνει ημερολογιακή ταξινόμηση, αλλιώς θα γίνει αλφαβητική. Καλύτερα να μετατρέψεις το πεδίο σε datetime, ή ακόμα καλύτερα να κάνεις import τα δεδομένα με μορφή datetime.

    Λες ότι έκανες τη μεταφορά με το Local Packages. Μήπως εννοείς το DTS και τους wizards? Έχε υπόψη ότι ο wizard δεν επιβάλει να εισάγεις τα δεδομένα σε πεδία varchar. Αν έχεις ήδη δημιουργήσει τον πίνακα και έχεις ορίσει ότι το πεδίο περιέχει δεδομένα datetime, ο wizard δεν θα διαμαρτυρηθεί. Μπορεί να διαμαρτυρηθεί αν δεν μπορεί να κάνει τη μετατροπή, αλλά και αυτό διορθώνεται πειράζοντας το ίδιο το package που σου δημιουργεί. Μπορείς εκεί άνετα να ορίσεις ότι κατά το διάβασμα του αρχείου οι τελείες θα αντικαθίστανται με /
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  17-06-2006, 15:02 14095 σε απάντηση της 14094

    Απ: αλλαγη απο varchar σε datetime

    έτσι ακριβώς από DTS μεταφέρω ένα αρχείο .ΤΧΤ μέσα στην βάση μου

    1) στην περίπτωση που δημιουργεί μονό του τον πίνακα.

    Όλα ένταξη μέχρι το σημείο ότι το πεδίο dates είναι varchar και

    2) αν φτιάξω τον πίνακα μονός μου με το πεδίο dates με datetime τοτε μου βγαζει μήνυμα λάθους

    αν κατάλαβα καλά κατά την μεταφορά από το .ΤΧΤ στην βάση θα πρέπει να αντικαταστήσει ' . ' σε ' / ' αυτό δεν μπόρεσα να το κάνω.

  •  18-06-2006, 16:53 14112 σε απάντηση της 14095

    Απ: αλλαγη απο varchar σε datetime

    Θα πρότεινα εν αρχή να βάλεις τις ημερομηνίες μέσα στο table σαν varchar όπως έμπαιναν μια χαρά.

    Στην συνέχεια να κάνεις μια αλλαγή στο table και να προσθέσεις μια ακόμα στήλη, τύπου datetime που θα φιλοξενίσει την ημερομηνία που μετρατραπεί από το varchar πεδίο που έχει εισαχθεί ήδη.

    Μετά τρέχεις το

    UPDATE myTable SET dateTimeField=CAST(REPLACE(varCharField, '.', '/') AS datetime)

    ... αφού αντικαταστήσεις τα myTable, dateTimeField, varCharField με τα αντίστοιχα δικά σου ονόματα, και είσαι έτοιμος!

    Αν το UPDATE δεν σου βγει, πιθανώς σε κάποια records η τιμή δεν είναι σωστή ημερομηνία, ή είναι κενά. Μπορείς να προσθέσεις ένα WHERE στο παραπάνω statement και να τα αποφύγεις...

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  18-06-2006, 17:39 14113 σε απάντηση της 14025

    Απ: αλλαγη απο varchar σε datetime

    Server: Msg 242, Level 16, State 3, Line 2

    The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

    The statement has been terminated.



    ??????????????? τί κάνω λάθος
  •  18-06-2006, 18:02 14114 σε απάντηση της 14113

    Απ: αλλαγη απο varchar σε datetime

    Εσύ τίποτα συγκεκριμένο...

    Φαίνεται ότι οι τιμές που έχει η στήλη που θέλεις να μετατρέψεις δεν είναι όλες σωστές... Μήπως οι ημερομηνίες είναι σε Αμερικάνικο format, εκτός ότι έχουν τελείες;

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  18-06-2006, 20:33 14115 σε απάντηση της 14112

    Απ: αλλαγη απο varchar σε datetime

    όχι το format είναι 21.03.2006 και δεν έχω καταχωρίσεις με NULL ή διαφορετική καταχώριση πουθενά

    έχει 30 καταχωρίσεις και της έχω δει μια προς μία

    τελικά αυτό που έκανα προσψρινά ειναι το έξεις

    πρώτα τα φορτώνω σε εναν πίνακα

    μετά κάνω εξαγωγή με VIEW σε .ΤΧΤ οπου χρησημοπιο την REPLACE(dbo.CompanyPhones.dates, '.', '/')

    και μετά ξανά εισαγωγή στον πίνακα που θέλω.

    μου θυμίζει Θεσσαλονίκη Αθήνα μέσω Χαλκιδικής αλλα .......

    ευχαριστώ πολυ και αν έχετε να προτείνετε κατι άλλο.

  •  19-06-2006, 09:15 14117 σε απάντηση της 14115

    Απ: αλλαγη απο varchar σε datetime

    Αυτό που φαίνεται είναι ότι το πρόβλημα είναι στην μετατροπή που κάνει ο SQL server. Δεν πρόκεται για κάποιο bug, αλλά στο ότι ο SQL Server, χειρίζεται τις ημερομηνίες στο default locale της σύνδεσης - default το αμερικάνικο - οπότε μετά το REPLACE() οι ημερομηνίες σου θεωρούνται με αμερικάνικο format και όταν δεν μπορεί να τις μετατρέψει, και εμφανίζει το σφάλμα...

    Θα μπορούσες στο DTS package, αντί για copy column, να κάνεις με script την αντιγραφή, κάνοντας αλλαγές στο string της ημερομηνίας να το κάνεις της μορφής "2006-06-19", που θα περάσει την μετατροπή ή να επιστρέφεις ημερομηνία σαν datetime, που έχεις φτιάξει εσύ από το string της γραμμής που εισάγεται...

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  19-06-2006, 09:53 14118 σε απάντηση της 14025

    Απ: αλλαγη απο varchar σε datetime

    Κάνε και μία δοκιμή με αυτό:

    SELECT CONVERT(DATETIME,'21.03.2006',104)
    Sex is like programing; One mistake, and you will have to support it for the rest of your life…
  •  19-06-2006, 12:55 14121 σε απάντηση της 14025

    Απ: αλλαγη απο varchar σε datetime

    Η εάν θέλεις διάβασε το άρθρο μου στο blog μου, για το πως μπορείς να κάνεις τον sql server να καταλαβαίνει το greek format στις ημερομηνίες.
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  19-06-2006, 17:45 14127 σε απάντηση της 14118

    Απ: αλλαγη απο varchar σε datetime

    yes yes yes...................raPhaeL ολα καλά αργησες αλλα ηρθες να σωσεις .......το προβλημα μου ευχαριστώ

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems