08. november 2007 - 13:54Der er
13 kommentarer og 2 løsninger
Formattering af TimeStamp
Hejsa...
jeg skriver et TimeStamp objekt fra java ned i et DateTime felt i en MS SQL DB 2005...det virker fint...dog gemmes datoen i databasen i forkert format "mm-dd-yyyy". Jeg ønsker derfor, at ændre formatet til "dd-mm-yyyy" - så mit spørgsmål er, hvordan gør jeg det?
jeg skriver new Timestamp(currDate.getTime() ned i databasen direkte fra java!
currDate = new java.util.Date();
og når jeg kigger direkte hvad der er skrevet i databasen står der dags dato som 11-08-2007...der skulle gerne stå 08-11-2007 som der plejer at stå når jeg skriver ned i samme database men fra dot net...
Jeg formatere ikke datoen eller laver den om ti len strin gfør jeg skriveer den til db....jeg skriver et TimeStamp til databasen...intet andet...og typen i databasen er DateTime...og har lige prøvet at indlæse, den bytter om på day og måned idet data er skrives forkert i databasen...
iflg. din kode, så laver du faktisk implicit dit timestamp om til en string.
du skal så bruge SimpleDateFormat til at formattere dit timestamp i det format som din MS SQL forventer. Jeg vil dog stadig anbefale at bruge preparedstatement istedet, så man skriver de rå java-datoer direkte til databasen, uanset hvad formatering databasen måtte være sat op til.
husk på, at det format du SKRIVER datoen til MS SQL, ikke nødvendgvis er det format MS SQL viser dig datoen i igen ....
Først og fremmest er det vigtigt at du er 100% sikker på hvilket format din MS SQL server forventer at modtage en dato i, og dernæst skal du være sikker på at din executeUpdate indeholder netop dette format (som sagtens/ofte vil afvige fra det format du få det vist i, når du kigger direkte i MS SQL). Når du laver executeUpdate, er det nødvendigt at sætte plinger omkring datoen.
Jeg ved ikke hvilket format min db er sat op til, hvordan finder jeg ud af det? Jeg er virkelig træt af at sidde fast, kan du ikke fortælle mig præcist hvad jeg skal skriver jeg at formatere min dato korrekt...det format jeg har prøvet ændrer ikke noget...
hey bare læg et svar...jeg fandt ud af at det kode jeg har postet 08/11-2007 15:08:12 faktisk virkede....der må have været snedet sig en lille fejl ind et sted...?-)
PreparedStatement updateSales = con.prepareStatement( "UPDATE COFFEES SET SALES = ? WHERE COF_NAME LIKE ? "); updateSales.setInt(1, 75); updateSales.setString(2, "Colombian"); updateSales.executeUpdate():
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.