Avatar billede mvk Nybegynder
06. juni 2005 - 09:16 Der er 17 kommentarer og
1 løsning

Datatype der kan håndtere decimal tal

hvilken datatype skal jeg bruge når jeg eksempelvis skal angive et tal med decimaler  - eksempelvis valutakurser 7.5495 ?

pls help :)
Avatar billede arne_v Ekspert
06. juni 2005 - 10:01 #1
DECIMAL(7,4)

lyder som en oplagt mulighed
Avatar billede arne_v Ekspert
06. juni 2005 - 10:01 #2
DECIMAL og NUMERIC på ihvertfald være bedre end FLOAT oG REAL
Avatar billede mvk Nybegynder
06. juni 2005 - 12:09 #3
den er ændret. når jeg prøver at skrive: 7,4394 melder den fejl - incorrect syntax
Avatar billede arne_v Ekspert
06. juni 2005 - 12:16 #4
prøv lige med 7.4394 altså punktum fremfor komma
Avatar billede mvk Nybegynder
07. juni 2005 - 08:53 #5
det spiser den heller ikke - den afrunder til 7

i databasen står feltet til:
Column Name: Rate
Date Type: decimal
Length: 5
Allow Nulls: hak
Avatar billede mvk Nybegynder
07. juni 2005 - 09:18 #6
hvis jeg afsætter 60 point mere vil du så ikke også lige forklare hvordan jeg skal gøre det når jeg skal lagre dato. brugerne skal jo helst indtaste det i dansk datoformat og kunne søge på dansk dato format dd-mm-yyyy - men jeg tror at ms sql kun accepterer engelsk dato format mm-dd-yyyy - hvordan løser man sådan et problem ?
eller skal jeg oprette et nyt spørgsmål ? :)
Avatar billede arne_v Ekspert
07. juni 2005 - 09:30 #7
Den skal være DECIMAL(7,4)

length skal nok være 7

og så skal decimaler/precision/hvad-det-nu-hedder stå til 4
Avatar billede arne_v Ekspert
07. juni 2005 - 09:30 #8
Hvis dit programmerings sprog understøtter parameters/prepared statements så
er det nok den bedste løsning på tids format problemer
Avatar billede mvk Nybegynder
07. juni 2005 - 12:49 #9
super. nu spiser den decimaler men kun hvis jeg angiver dem med punktum og ikke komma - men når jeg viser værdierne er det med komma ? (stupid computers :)

mht dato format så ved jeg ikke om mit programmeringssprog understøtter det - jeg laver det i ASP
Avatar billede rif1900 Nybegynder
07. juni 2005 - 14:15 #10
Avatar billede arne_v Ekspert
07. juni 2005 - 14:17 #11
SQLServer skal have dem med .

Men det er nok din ASP/VBScript der står til dansk og derfor viser tal med ,

Det mener jeg imidlertid at du kan styre eksplicit med en konverterings funktion
Avatar billede arne_v Ekspert
07. juni 2005 - 14:18 #12
ADO understøtter parameters

men jeg har dog aldrig lavet datoer ved hjælp af det

måske prøver jeg at bikse et eksempel i aften
Avatar billede arne_v Ekspert
07. juni 2005 - 23:35 #13
eksempel:

<%
' open
adParamInput = 1
adInteger = 3
adDate = 7
Set con = Server.CreateObject("ADODB.Connection")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Databases\MSAccess\Test.mdb;;"
Set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = con
' lige ud af landevejen
con.Execute "INSERT INTO params(id,tid) VALUES(1,'7-JUN-2005')"
' med kommando
cmd.CommandText = "INSERT INTO params(id,tid) VALUES(2,'8-JUN-2005')"
cmd.Execute
' med kommando og parametre
cmd.CommandText = "INSERT INTO params(id,tid) VALUES(@id,@tid)"
cmd.Parameters.Append(cmd.CreateParameter("@id", adInteger, adParamInput))
cmd.Parameters.Append(cmd.CreateParameter("@tid", adDate, adParamInput))
cmd.Parameters("@id") = 3
cmd.Parameters("@tid") = CDate("9-JUN-2005")
cmd.Execute
' close
Set cmd = Nothing
Set con = Nothing
%>
OK
Avatar billede arne_v Ekspert
08. juni 2005 - 20:09 #14
OK ?
Avatar billede mvk Nybegynder
09. juni 2005 - 08:55 #15
er ovenstående et eksempel på hvordan jeg kan angive et dansk datoformat i et felt og ligge det i databasen som det format sql vil have ?

jeg skal nemlig kunne søge på dato så jeg eksempelvis kan vise en liste over ordrer fra 01-01-2005 til 09-06-2005 men jeg kan ikke overskue hvordan det skal gøres for som dansk læses det som den 9. juni 2005 og på engelsk (sql) læses det vel som 6. september 2005 ?
Avatar billede arne_v Ekspert
10. juni 2005 - 17:17 #16
ovenstående viser hvordan du kan flytte fortolkningen af dato formatet fra
databasen til VBScript

I mit eksempel bruger jeg bare en simpel CDate, men du kan jo kode det præcis
som du vil have det
Avatar billede arne_v Ekspert
22. juni 2005 - 22:08 #17
OK ?
Avatar billede mvk Nybegynder
23. august 2005 - 07:14 #18
thanks. undskyld det sene svar!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester