Avatar billede ser Nybegynder
06. november 2006 - 16:35 Der er 4 kommentarer og
1 løsning

1000 dele sek

Jeg har et dato feldt i en MS-SQL database, data kan f.eks. være:
"2006-11-06 16:24:23.000"  er der nogen som ved hvad de 3 sidste cifre står for ? Hvis de er 1000 sek, hvordan får man så ( via VB6 ) indsat data ( værdien er 000 i alle mine record ).
jeg kender funktionen FORMAT med den kan jeg f.eks hente "YYYY-MM-DD hh:nn:ss" værdier. men hvordan læser jeg de 3 sidste cifre ?
Avatar billede shy Nybegynder
06. november 2006 - 18:22 #1
Deklarer dette API kald:
Declare Function GetTickCount Lib "kernel32" () As Long

Anvend de 3 sidste cifre når du kalder GetTickCount:

Debug.Print Now & "." & Right(GetTickCount(), 3)
Avatar billede kjulius Novice
07. november 2006 - 00:43 #2
Jeg gætter lidt her, men iflg. manualen er det ganske rigtigt tusinddele sekunder. Det kan specificeres på to måder:

Milliseconds can be preceded by either a colon (:) or a period (.). If preceded by a colon, the number means thousandths-of-a-second. If preceded by a period, a single digit means tenths-of-a-second, two digits mean hundredths-of-a-second, and three digits mean thousandths-of-a-second. For example, 12:30:20:1 indicates twenty and one-thousandth seconds past 12:30; 12:30:20.1 indicates twenty and one-tenth seconds past 12:30.

Iflg. samme manual skal man specificere "ms" i formatet for at få millisekunderne med: "YYYY-MM-DD hh:nn:ss.ms".

Mht. at få registreret din timestamp med millisekund angivelse, så vil jeg tro, at problemet er, at VB6' NOW funktion ikke understøtter millisekund-angivelser. Hvis du vil have dem med, er du vist nødt til at bruge serverens GETDATE() eller CURRENT_TIMESTAMP funktioner til at registrere værdien (det vil så være serverens tid, ikke VB6 klientens):

UPDATE table SET datetimefield = CURRENT_TIMESTAMP

eller evt. sætte feltets default value til CURRENT_TIMESTAMP

Da jeg pt. ikke har adgang til MS SQL server, er det dog lidt af et gæt om det virkelig vil indsætte tusinddele, sorry.
Avatar billede arne_v Ekspert
07. november 2006 - 02:56 #3
SQLServer DATETIME har kun en præcision på 1/300 sekunder, så helt præcist bliver det ikke
Avatar billede ser Nybegynder
07. november 2006 - 14:02 #4
Tak for 3 tilsammen fyldesgørende svar, kan jeg mon få kjulius til ar gi et svar, så jeg kan fordele poing ?
Avatar billede kjulius Novice
07. november 2006 - 19:01 #5
Jo, det skulle vel nok kunne lade sig gøre. :-)
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
Kurser inden for grundlæggende programmering

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