Avatar billede EIHP Juniormester
29. april 2007 - 14:07 Der er 8 kommentarer og
1 løsning

asp date og mysql

jeg har snart prøvet med alle mulige måder at sæt datoen ind i min mysql database..

min mysql database har tiden yyyy-dd-mm

og min webserver har dd-mm-yyyy og derfor virker date ikke bare.. så jeg har selv siddet med en lappeløsning.

IF len(month(date)) = 1 then
strmonth = "0" & month(date)
else
strmonth = month(date)
end if

IF len(day(date)) = 1 then
strday = "0" & day(date)
else
strday = day(date)
end if
strListAdd_SQL = strListAdd_SQL & "'#" & year(date) & "-" & strday & "-" & strmonth & "#', "

desværre virker den ikke. men hvis jeg ændre day() til weekday(date) så vil den godt, desværre er weekday bare hvilket dag i ugen vi er. og derfor undrer det mig at jeg ikke kan bruge day()
Avatar billede bauerdata Nybegynder
29. april 2007 - 15:14 #1
hvordan er dit dato felt erklæret i databasen,

Er det erklæret som date ?
i såfald skal du binde din date variabel til sqlsætningen
så skal du bare gemme din date variabel uden at konvertere noget som helst.

normal ville jeg have f.eks
$date = Now()
$stmt = OCIParse($DB->_connectionID,
    "sql="insert into tab (dato) values (:date)"

på den måde slipper du for at konvetere din date til en streng "mm/dd/yyyy" og derefter til "yyyy/mm/dd" som mysql derefter konverterer til en date og gemmer i databasen
Med bind giver du mysql adressen på din date variabel og den gemmer den så bare som en date :-)

Se også http://phplens.com/phpeverywhere/node/view/23
"""
Using bind variables:

$DB->BeginTrans();
$a = '';
$b = 0;
$c = 0;
$stmt = OCIParse($DB->_connectionID,
        "insert into test5000 (name,price,stock) values (:a,:b,:c)");
OCIBindByName($stmt,":a",&$a,32);
OCIBindByName($stmt,":b",&$b,32);
OCIBindByName($stmt,":c",&$c,32);
for ($i=0; $i < $NUMRECS; $i++) {
    $a = "a name $i";
    $b = $i;
    $c = $i;
    $e = OCIExecute($stmt,OCI_DEFAULT); # bug-fix, added OCI_DEFAULT
    if (!$e) {
        print $DB->ErrorMsg();
        break;
    }

}
$DB->CommitTrans();
"""
Avatar billede bauerdata Nybegynder
29. april 2007 - 15:16 #2
Ups. stavefejl
"sql="insert  --> "insert
Avatar billede EIHP Juniormester
29. april 2007 - 17:33 #3
nu er forskellen så bare lige, at du har skrevet en masse php og jeg bruger asp
Avatar billede sth Novice
30. april 2007 - 10:07 #4
jeg bruger :

dato= DatePart("yyyy", date()) & "-" & DatePart("m",date()) & "-" & DatePart("d", date())


Så er det bare at indsætte dato
Avatar billede sth Novice
30. april 2007 - 10:16 #5
eller :'

Function MyDatePart(interval, date)
    MyDatePart = Right("0" & DatePart(interval, date), 2)
End Function

Function doMysqlDateTime ()
    dtDateTime = Now()
    dtDateTime = DatePart("YYYY", dtDateTime) & "-" & MyDatePart("M", dtDateTime) & "-" & MyDatePart("D", dtDateTime) & " " & MyDatePart("H", dtDateTime) & ":" & MyDatePart("N", dtDateTime) & ":" & MyDatePart("S", dtDateTime)
    doMysqlDateTime = dtDateTime
End Function

Response.Write doMysqlDateTime
Avatar billede EIHP Juniormester
01. maj 2007 - 09:08 #6
det er super sth, den virket helt uden problemer den nedeste
Avatar billede sth Novice
01. maj 2007 - 11:19 #7
ok så smider jeg da lige et svar :-)
Avatar billede EIHP Juniormester
02. maj 2007 - 07:45 #8
det var så kun en kommentar :( prøv igen
Avatar billede sth Novice
03. maj 2007 - 20:47 #9
Ja du har da ret.... jeg sover
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