Avatar billede soda Nybegynder
21. juli 2003 - 15:05 Der er 11 kommentarer og
1 løsning

Datatypes med tid.

Hvilken datatype er bedst, at bruge, hvis man skal bruge tid med kun minutter og sekunder ?

Har kigget lidt rundt i Books Online, men syntes ikke rigtig jeg kan finde noget konkret.

Står, at 14:30 bliver behandlet som tt:mm, men hvis jeg nu gerne vil have, at den behandlede det, som mm:ss. Hvad er så bedst ?

Skal bruges i sammenhæng med længde af sange.
Avatar billede soda Nybegynder
21. juli 2003 - 15:06 #1
Ville også være glad for, at få svardet på det samme, men til ACCESS ;o) - Takker på forhånd.
Avatar billede the_bma_man Nybegynder
21. juli 2003 - 15:46 #2
Hvad skal det bruges til?
Det kunne jo være, at tt:mm:ss formatet er fint nok.
Avatar billede terry Ekspert
21. juli 2003 - 17:44 #3
I would use a a datetime field, the same in Access too :o) It can contain just the time part!
Avatar billede soda Nybegynder
21. juli 2003 - 22:37 #4
the_bma_man: Som jeg skrev, så skal det bruges i sammenhæng med længde af sange. De er somregel kun på et par minutter, men som standard skrives tid med time og minut (tt:mm) og ikke minut og sekund (mm:ss).

Terry: A common datatype for both Access and MS SQL is highly appreciated since I might use Access for the creation of the database and later on convert it to SQL.
Avatar billede pierrehusted Nybegynder
22. juli 2003 - 11:48 #5
Hvad så med bare at skrive 0:03:50 når det er 3 minutter og 50 sekunder ??
Avatar billede janus_007 Nybegynder
22. juli 2003 - 12:39 #6
Skriv det i rene sekunder :O) Det ville da klart være det smarteste og så konvertere til det format du vil have på FE !!
Avatar billede soda Nybegynder
22. juli 2003 - 14:48 #7
janus_007: Det har jeg så ikke lige tænkt på. Så skal jeg bare bruge en integer, som datatype går jeg ud fra. Tinyint er for lidt til nogle af sangene.

Hvordan ville du så formatere dette i SQL Sætningen når du skulle have vist tiden ?

Har disse felter i min songs tabel.

Name
Type
Bitrate
Lenght
Size

Har ikke inkludere primær og fremmednøgler.
Avatar billede janus_007 Nybegynder
22. juli 2003 - 15:01 #8
Brug bare int.

Og en lille sammenflækket funktion:
create  function convert_sec_to_time(@s as varchar(25))
returns varchar(10)
as
begin

if isnumeric(@s) = 0 return @s
return convert(varchar, dateadd(s, cast(@s AS INT), '00:00:00.000'), 108)
end

-----------

herefter
select dbo.convert_sec_to_time(Lenght)
from songstable
Avatar billede terry Ekspert
22. juli 2003 - 19:15 #9
soda>thats why I suggested dateTime
Avatar billede soda Nybegynder
22. juli 2003 - 22:56 #10
Terry: As I se it. datetime will display your time as hh:mm:ss, but I'd like to only get mm:ss since I won't have any songs over an hour.
Avatar billede janus_007 Nybegynder
23. juli 2003 - 01:03 #11
Hvis du er sikker på at ingen varer over 1 time, så laver du naturligvis bare en substring og cutter hh: væk i den funktion der som jeg har givet dig :O)
Avatar billede soda Nybegynder
11. september 2003 - 15:06 #12
Jeg har valgt, at afslutte dette spørgsmål, da jeg ikke er kommet videre med mit projekt og jeg går ud fra, hvis jeg prøver, så vil janus' foreslag formodentlig virke.
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