Avatar billede bgo Nybegynder
04. oktober 2004 - 10:41 Der er 10 kommentarer og
1 løsning

Dato fra en tabel til en anden

Jeg skal have kopieret dato'en fra et dato felt i én tabel til et datofelt i en anden tabel. Rækken datoen skal sættes ind i, er allerede eksisterende, og det er en Update-sql jeg vil bruge.

Sad og rodede med det igår, men enten sagde den syntax fejl ved update-sætningen, eller også kom den og sagde at der var uoverensstemmelser mellem datatyperne, hvilket jeg ikke helt forstår, da jeg smider datoen ind i en variabel jeg ikke manipulerer med inden jeg vil smide det ind i den anden tabel.

Der er garanteret en eller anden funktion jeg skal bruge for at den forstår at det er en dato - men hvilken?
Avatar billede hulla Novice
04. oktober 2004 - 10:46 #1
kommer anpå flere ting, f.eks. hvilken database du bruger.

Vil du smide den kode der gør det?
Avatar billede fennec Nybegynder
04. oktober 2004 - 10:49 #2
Når ASP får en dato fra databaser bliver den konverteret til ASP formatet. Nå du så bruger den i en anden SQL-sætning, bliver den ikke konverteret tilbage. Hvis du ikke kan lave det hele i en SQL sætning, skal du selv konvertere datoen tilbage til et format Access kan forstå.
Avatar billede fennec Nybegynder
04. oktober 2004 - 10:52 #3
Går ud fra du bruger Access. Der har jeg denne funktion du kan bruge til at konvertere med, ellers kan den ændres til det format databasen skal bruge.

Function ConvertToSqlDate(dato)
  dim SQLYear,SQLMonth,SQLDay
  SQLYear = Year(dato)
  SQLMonth = Month(dato)
  SQLDay = Day(dato)
  if SQLDay<10 then
    SQLDay = 0&SQLDay
  end if
  if SQLMonth<10 then
    SQLMonth = 0&SQLMonth
  end if
  ConvertToSqlDate = SQLMonth&"-"&SQLDay&"-"&SQLYear
End Function
Avatar billede bgo Nybegynder
04. oktober 2004 - 11:07 #4
hmm fandt lige noget der hedder DateValue(datotid) - ser ud til at den kunne bruges, eller hvad?

hulla:

'Hent id på sidst oprettede indlæg
Conn.Execute ("INSERT INTO Indlæg (Forfatter, Tekst, Tråd) VALUES ('" & request.querystring("username") & "', '" & request.form("message") & "', " & thread & ")")

set rs = Conn.Execute("SELECT @@IDENTITY as LastID")
    while not rs.EOF
        message = rs("LastID")
        rs.MoveNext
    Wend
    rs.close
    set rs = Nothing

'Hent dato og tid fra sidst oprettede indlæg
set rs = Conn.Execute("SELECT Datotid FROM Indlæg WHERE id=" & message)
    while not rs.EOF
        Datotid = rs("Datotid")
        rs.MoveNext
    Wend
    rs.close
    set rs = Nothing

'Opdater dato/tid i tråde
Conn.Execute ("UPDATE Tråde SET Antalsvar = Antalsvar + 1, Sidstedato = '" & Datotid & "', Sidsteforfatter = '" & request.querystring("username") & "' WHERE id = " & request.querystring("threadid") )

'Opdater dato/tid i fora
Conn.Execute ("UPDATE Fora SET Sidstedato = " & Datotid & ", Sidsteforfatter = '" & request.querystring("username") & "' WHERE id = " & request.querystring("forumid") )

Som det ses har jeg forsøgt mig frem med både apostroffer og uden apostroffer

fennec:

Lige nu bruger jeg Access, ja, men jeg skulle gerne kunne understøtte mysql også - derfor bruger jeg så vidt muligt generelle løsninger ;)
Avatar billede fennec Nybegynder
04. oktober 2004 - 11:33 #5
Jeg tvivler på du kan bruge DateValue() funktionen, hvis du vil bruge det med en anden database. Nu ved jeg ikke om du bruger DateValue() funktionen i Access eller ASP, mem den er ikke i MySQL så du kan ikke bruge Access funktionen. I ASP genkender den formatet mm-dd-yyyy (som også er access' format), men det er ikke det format som MySQL bruger (yyyy-mm-dd), så jeg tror heller ikke den dur.
Avatar billede bgo Nybegynder
05. oktober 2004 - 09:41 #6
fennec:

pokkers også
Avatar billede fennec Nybegynder
05. oktober 2004 - 09:48 #7
Det er faktist derfor jeg bruger den funktion fra "04/10-2004 10:52:31" som en include på mine sider. Hvis jeg skifter database, tilpasser jeg bare den til det nye format.
Avatar billede bgo Nybegynder
05. oktober 2004 - 10:13 #8
fennec:

kunne være jeg også skulle gøre det så
Avatar billede bgo Nybegynder
07. oktober 2004 - 20:39 #9
fennec:

glemte helt at bede dig om at svare :)
Avatar billede fennec Nybegynder
08. oktober 2004 - 08:23 #10
.o) <-- One Eyed Jack
Avatar billede bgo Nybegynder
15. oktober 2004 - 09:18 #11
det sjove af det hele er, at da jeg skulle bruge det igen igår, havde jeg ikke adgang til nettet, og havde ingen kopi i nærheden. Så kom jeg til at tænke på en lille detalje: Dato'er i Access skal omgives af nummertegn, altså # - prøvede det og det virkede.

Har måske været lidt for opsat på en cross-db løsning til at komme på denne ide :D

DateValue() kune da bruges, men ikke hvis det er den _rigtige_ dato der skal i en access db *lol*
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