Avatar billede fun22 Nybegynder
13. november 2006 - 19:26 Der er 9 kommentarer og
2 løsninger

Indsætte now() giver problemer

Hej

Når jeg vil indsætte Now() i mit DateTime felt i min tabel, så indsætteer den ingen ting.. Det virker hvis jeg laver feltet om til text, men ikke når det er DateTime felt..

Nogen der kan sige mig hvorfor??

ShortDate = FormatDateTime(Now, vbShortDate) ' Eks. 23-12-2004
LongTime = FormatDateTime(Now, vbLongTime) ' Eks. 20:11:07
   
strCreated = ShortDate & " " & LongTime

SQL = "INSERT INTO wp_users (db_uid, db_pwd, db_email, db_birth, db_mobil, db_region, db_zip, db_created, db_active, db_active_id) Values"
SQL = SQL & "('"&strUid&"', '"&strPwd&"', '"&strEmail&"', '"&strBirth&"', '"&strMobil&"', '"&strRegion&"', '"&strZip&"', '"&strCreated&"', '"&strActive&"', '"&strActiveId&"')"

Conn.execute SQL
Avatar billede ellebaek Nybegynder
13. november 2006 - 19:30 #1
SQL = "INSERT INTO wp_users (db_uid, db_pwd, db_email, db_birth, db_mobil, db_region, db_zip, db_created, db_active, db_active_id) Values"
SQL = SQL & "('"&strUid&"', '"&strPwd&"', '"&strEmail&"', '"&strBirth&"', '"&strMobil&"', '"&strRegion&"', '"&strZip&"', #"&strCreated&"#, '"&strActive&"', '"&strActiveId&"')"

prøv sådan her: altså med # omkring datoen..
Alternativt, det jeg synes normalt er den bedste løsning, så lav feltet i databasen om til tekst... dateTime giver tit mig problemer i hvert fald :-)
Avatar billede fun22 Nybegynder
13. november 2006 - 19:36 #2
Det virker ikke...

Ja jeg har også døjet meget med det, men der må jo være en løsning.. Det kan jo ikke passe de laver et felt man ikke kan bruge..
Avatar billede farving Nybegynder
13. november 2006 - 19:45 #3
Har selv haft problemer men har også haft gange hvor det har virket, men tjek at det output som du sender passer 100% med det som feltet kræver som input

dvs dd-mm-yyyy hh-mm-ss hvis det er det...

Mange gange er det fordi den ser det bare lidt forkert, men ellers er jeg blank, var bare lige en ting som evt skulle tjekkes

Mvh Carsten
Avatar billede fun22 Nybegynder
13. november 2006 - 19:50 #4
farving >> Det har jeg prøvet og alt ser ud til at være som det skal...

Men hvis nu jeg laver det om til et text felt... Hvordan får jeg den så til at lave den til et datofelt når jeg hiver det ud?

Jeg skal nemlig bruge det i en global.asa:

if datepart("h",rs("db_created")) <= datepart("h",now)-48 then

SQL = "DELETE FROM wp_users WHERE id = "&Delet_ID
conn.execute(SQL)
           
end if

Men den siger jo så at det er en string og så passer det ikke sammen.. Har prøvet med CDate og FormatDateTime uden held..

Hvordan kan jeg få det til at virke når db_created er et textfelt?
Avatar billede farving Nybegynder
13. november 2006 - 20:14 #5
Så ved jeg det ikke, desværre

Mvh Carsten
Avatar billede Slettet bruger
13. november 2006 - 20:28 #6
Hvis datoen skal være now kan du bare bruge NOW functionen som en del af din query.. Bemærk at now functionen ikke er en del af din asp kode men en del af din sql.

At lave teksstrenge i stedet for datetime felt vil jeg ikke anbefale.. Hvad sker der, når man skal udvælge datoer i et bestemt interval. eller når du skifter webhotel og regionale settings ændres så shorDate returneres med / i stedet for -. Jeg ved godt, man kan lave indstillinger i koden, men hvorfor ikke bruge datofelt når det er til rådighed.

Uden at kunne huske det helt sikkert, vil jeg mene at du kan bruge inputmaske #d/m/y/h/m/s# uden at du vil løbe ind i problemer.

SQL = "INSERT INTO wp_users (db_uid, db_pwd, db_email, db_birth, db_mobil, db_region, db_zip, db_created, db_active, db_active_id) Values"
SQL = SQL & "('"&strUid&"', '"&strPwd&"', '"&strEmail&"', '"&strBirth&"', '"&strMobil&"', '"&strRegion&"', '"&strZip&"', NOW(), '"&strActive&"', '"&strActiveId&"')"
Avatar billede ldanielsen Nybegynder
15. november 2006 - 14:37 #7
if datepart("h", rs("db_created")) <= datepart("h",now) -48 then

DatePart("h", objDate) returnerer timetallet i en dato. Hvis Now er kl 14:30, så er DatePart("h", Now) altså 14, og DatePart("h", Now) - 48 vil være -34

Hvilket altid er mindre end DatePart("h", rs("db_created")), der jo ikke kan blive mindre end 0

Jeg tror du skal bruge DateDiff og DateAdd:

http://msdn.microsoft.com/library/en-us/script56/html/fe4e5302-9602-4e0f-8496-559c7f58c8fa.asp?frame=true

if DateDiff("h", rs("db_created"), Now) > 48 then <så er der gået 2 døgn>
Avatar billede fun22 Nybegynder
15. november 2006 - 15:56 #8
Idanielsen >> Ja jeg så godt lige dengang jeg havde postet det at det var noget være rod hehe.. Men tak for kode stumpen..

Alle sammen >> Smider i lige nogen svar? Nu er vi vist ved at være færdige..
Avatar billede ellebaek Nybegynder
15. november 2006 - 22:59 #9
et svar her :-)
Avatar billede fun22 Nybegynder
16. november 2006 - 14:03 #10
ikke flere der vil have points?
Avatar billede ldanielsen Nybegynder
17. november 2006 - 12:10 #11
Hvis du kunne bruge det ...?
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