Avatar billede emma-sofie Nybegynder
14. september 2004 - 14:45 Der er 4 kommentarer og
1 løsning

Dato og Tid på en nemmere måde

Hej Alle

Jeg har et lille problem, jeg håber at få lidt hjælp til.

Jeg har en DB som bl.a. i en celle, gemmer dato og tid.
Celle i Access angivet med: dato og klokkeslet

I min opret.asp fil skrives:
<INPUT NAME="start">

og i min opret-nu.asp fil skrives:
<%
start = Request.Form("start")

Dim strSql
strSql = "INSERT INTO kampe (start) VALUES ('" & start & "')"

Problem: Man skal angive dato og tid således "10-11-2004 19:10:00" ellers kommer der fejl..
Kan man ikke gøre det på en nemmere måde, så det ikke er så let at lave fejl for brugerne  ???
(Jeg mener, det er da fjollet man også skal angive sekunder - bare dato og almindeligt klokkeslet !!)

Håber jeg har forklaret mig tydeligt nok.....

På forhånd tak for hjælpen. Tak.
Avatar billede fennec Nybegynder
14. september 2004 - 15:00 #1
Det burde ikke være nødvendig at indtaste sekunder. Ligesom man kan nøjes med en dato, også bliver tiden sat til 00:00:00, Men en andet lille detalje jeg har set på dit site. Datoer bliver ikke vist i dansk format.

Det kan du klare ved at smide dette ind på alle sider. (evt ind i din database include fil)
session.lcid = 1030

Du kan desuden få andre problemer med datoer. Det format brugerne taster er ikke nødvendigvis et format Access kan bruge. Access vil ofte kun tage formaterne "mm-dd-yyyy hh:nn:ss" (måned før dag) og "yyyymmdd hh:nn:ss". Hvis brugerne indtaster same format som session.lcid'en er sat til, kan du bruge denne funktion til at formatere dem inden de bruges i databasen:

Function ConvertToSqlDatetime(dato)
  dim SQLYear,SQLMonth,SQLDay,SQLHour,SQLMinute
  SQLYear = Year(dato)
  SQLMonth = Month(dato)
  SQLDay = Day(dato)
  SQLHour = Hour(dato)
  SQLMinute = minute(dato)
  if SQLDay<10 then
    SQLDay = 0&SQLDay
  end if
  if SQLMonth<10 then
    SQLMonth = 0&SQLMonth
  end if
  ConvertToSqlDatetime = SQLYear&SQLMonth&SQLDay&" "&SQLHour&":"&SQLMinute
End Function
Avatar billede flytier Nybegynder
14. september 2004 - 15:04 #2
Du kan bruge DATEVALUE funktionen i Access, så din SQl streng vil se ud således :

Dim strSql
strSql = "INSERT INTO kampe (start) VALUES (DATEVALUE('" & start & "'))"

så behøver du hverken timer, minutter eller sekunder..........
Avatar billede emma-sofie Nybegynder
14. september 2004 - 15:54 #3
Fennec: OK - Tak, jeg prøver.
Flytier: Det er dato & time + minut jeg skal bruge.
Avatar billede emma-sofie Nybegynder
15. september 2004 - 12:15 #4
Det virker perfekt.
session.lcid = 1030 er klart, selvfølgelig skal jeg bruge den.
Men konverteringsfunktionen er rigtig god og virker fint.

Tak for hjælpen. Lig lige et svar Fennec.
Avatar billede fennec Nybegynder
15. september 2004 - 12:16 #5
.o) <-- One Eyed Jack
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