Just nu i M3-nätverket
Jump to content

nvarchar till datetime


Mentor

Recommended Posts

Hur ändrar jag datatyp från nvarchar till datetime.

alla värden som finns i den kolumnen har jag ändrat till datumformat.

 

MSSQL gäller det förresten

 

//Mentor

Den högsta formen av intelligens är sunt förnuft

 

[inlägget ändrat 2004-11-17 19:48:46 av Mentor]

Link to comment
Share on other sites

Jag menade att jag ville ändra datatypen till datetime inte värderna som finns i den kolumnen.

 

Men jag lyckades komma fram till det här

[color="#0000ff"]SELECT[/color] CONVERT(datetime, minkolumn) [color="#0000ff"]AS[/color] aaa
[color="#0000ff"]FROM[/color]  MinTabell

Så nu tänkte jag att man kanske kunde skapa en ny kolumn med datatypen datetime och föra över alla värden där sedan bytta namn på den kolumnen och ta bort den gamla.

 

 

//Mentor

Den högsta formen av intelligens är sunt förnuft

 

[inlägget ändrat 2004-11-17 20:13:06 av Mentor]

Link to comment
Share on other sites

Jag får det inte till att funka såhär.

 

UPDATE mintabell

SET ny_kolumn= CONVERT(datetime, gammalkolumn)

 

Felmeddelande: Syntax error converting datetime from character string.

//Mentor

Den högsta formen av intelligens är sunt förnuft

 

[inlägget ändrat 2004-11-17 20:28:03 av Mentor]

Link to comment
Share on other sites

 

Jag jobbar aldrig med MSSQL men jag tror att du måste tala om hur ditt "TextDatum" är formaterat. Prova med

[color="#0000ff"]UPDATE[/color] mintabell
SET ny_kolumn= CONVERT(datetime[[color="#ff0000"]'[/color]yyyy-dd-mm[color="#ff0000"]'[/color]], gammalkolumn)

 

[inlägget ändrat 2004-11-17 20:53:21 av Erki]

Link to comment
Share on other sites

Den klagar på ['yyyy-dd-mm'].

Jag har ändrat alla värden i den gammla kolumnen till yyyy-dd-mm, men data typen är fortfarande nvarchar.

 

 

//Mentor

Den högsta formen av intelligens är sunt förnuft

 

Link to comment
Share on other sites

Fick göra det med asp för att det skulle funka.

 

Men de tlöste sig i alla fall.

 

//Mentor

Den högsta formen av intelligens är sunt förnuft

 

Link to comment
Share on other sites

Varför göra det svårare än det är. Ändra bara datatypen på befintlig kolumn med hjälp av SQL Enterprise Manager.

 

Mvh

 

Jimmy

Programming is a competition between programmers and God. The programmer keeps trying to write idiot proof programs, God keeps creating greater idiots. Right now, God is WAY ahead.

 

Link to comment
Share on other sites

Tror du inte jag försökte med det.

Det var det var det första jag gjorde.

Testa själv så får du se om det funkar.

 

 

//Mentor

Den högsta formen av intelligens är sunt förnuft

[inlägget ändrat 2004-11-18 21:38:45 av Mentor]

Link to comment
Share on other sites

Om du får fel så beror det troligtvis på att SQL inte känner igen datumformatet, e g '20041119' tolkas som ett nummer av SQL. Om man först kör en update på fältet, e g för att få formatet "2004-11-19'

 

[color="#0000ff"]UPDATE[/color] mintabell set datum = substring(datum,1,4) + [color="#ff0000"]'-'[/color] + substring(datum,5,2) + [color="#ff0000"]'-'[/color] + substring(datum,7,2)
[color="#0000ff"]WHERE[/color] len(datum) = 8

 

och sen kan man använda enterprise manager för att konvertera till datetime.

 

 

Mvh

 

Jimmy

Programming is a competition between programmers and God. The programmer keeps trying to write idiot proof programs, God keeps creating greater idiots. Right now, God is WAY ahead.

 

Link to comment
Share on other sites

Jo jo klart man måste ändra till datumformat innan man försöker ändra datatyp, vilket jag gjorde oxå.

Men som jag skrev i ilägget ovan så fick ja det här

Felmeddelande: Syntax error converting datetime from character string.

 

 

//Mentor

Den högsta formen av intelligens är sunt förnuft

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...