The_Judas Δημοσ. 10 Ιουνίου 2014 Δημοσ. 10 Ιουνίου 2014 Εχω ένα πεδίο τύπου varchar σε ένα πεδίο της βάσης δεδομένων. Αυτό όμως εκτός από χαρακτήρες περιέχει και ημερομηνία στο τέλος. Για παράδειγμα: χαρακτήρες/12-1-2014 Μπορεί όμως να είναι και 13-10-2014, δηλαδή μπορεί να είναι είτε οι 9 είτε οι τελευταίοι 10 χαρακτήρες... Υπάρχει κάποιος τρόπος για να πάρω την ημερομηνία, να την βάλω σε ένα άλλο πεδίο καθαρά τύπου date και να αφήσω στο άλλο πεδίο μόνο τους χαρακτήρες;
The_Judas Δημοσ. 10 Ιουνίου 2014 Μέλος Δημοσ. 10 Ιουνίου 2014 ναι ξέχασα το πιο βασικό! SQL Server 2008.
kagelos Δημοσ. 10 Ιουνίου 2014 Δημοσ. 10 Ιουνίου 2014 Γράψε ένα πρόγραμμα σε κάποια άλλη γλώσσα, το οποίο για κάθε εγγραφή θα ψάχνει με ένα regular expression την ημερομηνία και θα την περνάει στη νέα στήλη.
geomagas Δημοσ. 10 Ιουνίου 2014 Δημοσ. 10 Ιουνίου 2014 Με ένα συνδυασμό από reverse(), charindex() και left(). Πχ: create table temp (a varchar(200),b date) INSERT INTO temp (a, VALUES ('abcf/efgh/10-3-2014', NULL), ('uhyt/ 31-5-2014', NULL), ('a/e / 1-9-2013', NULL) set dateformat dmy update temp set b=reverse( left( reverse(a), charindex('/',reverse(a))-1 ) ) select * from temp drop table temp EDIT: Βελτιωμένη (απλούστερη) έκδοση, που περιλαμβάνει και την αφαίρεση της ημερομηνίας από το a (που άργησα να το προσέξω...) create table temp (a varchar(200),b date) INSERT INTO temp (a, VALUES ('abcf/efgh/10-3-2014', NULL), ('uhyt/ 31-5-2014', NULL), ('a/e / 1-9-2013', NULL) set dateformat dmy update temp set a=left(a,len(a)-charindex('/',reverse(a))), b=right(a,charindex('/',reverse(a))-1) select * from temp drop table temp 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα