Avatar billede want2learn Nybegynder
28. marts 2006 - 21:24 Der er 10 kommentarer og
1 løsning

udtræk af dato i M D og Y samt T

Hej

hvis jeg har et udtræk

08-04-06 11:30
og jeg så siger:

TheDate = "08-04-06 11:30
strDate = Replace(TheDate, " ", " ")

Hvordan kan jeg så lave mit udtræk med 2 cifre i hver så
TheDay = 08
TheMonth = 04
TheYear = 06
TheTime = 11:30

hvordan kan jeg tage disse udtræk ud af "strDate" !?
Avatar billede eagleeye Praktikant
28. marts 2006 - 21:36 #1
Hvis der altid er to ciffer kan bruge streng funktioner:

TheDate = "08-04-06 11:30
strDate = Replace(TheDate, " ", " ")

TheDay = left(strDate, 2)
TheMonth = mid(strDate, 4, 2)
TheYear = mid(strDate, 7, 2)
TheTime = mid(strDate, 10)




Et alternativ som bruger split et array:

TheDate = "08-04-06 11:30
strDate = Replace(TheDate, " ", " ")

arr = split(strDate, " ")
TheTime = arr(1)
arr = split(arr(0), "-")
TheDay = arr(0)
TheMonth = arr(1)
TheYear = arr(2)
Avatar billede want2learn Nybegynder
28. marts 2006 - 23:31 #2
mange tak og lige en hurtig en.

Hvis jeg har:
TheDay = left(strDate, 2)
TheMonth = mid(strDate, 4, 2)
TheYear = mid(strDate, 7, 2)
TheTime = mid(strDate, 10)

som er
TheDay = 08
TheMonth = 04
TheYear = 06
TheTime = 11:30

hvordan kan jeg lave en if sætning som kan samligne dem med day(now) osv !?
hvis det er den 2/4-2006 11:00

så vil mine tal jo være
TheDay = 02
TheMonth = 04
TheYear = 06
TheTime = 11:00

men det er jo ikke det samme som day(now), month(now) og year(now) da det vil være:
day(now) = 2
month(now) = 4
year(now) = 2006

jeg vil gerne kunne sig at:
If TheDay >= day(now) Then
bla. bla.

men det kan jeg ikke da 02 ikke er det samme som 2, lave day(now) osv. om så jeg kan samligne dem med mine ting !?
Avatar billede eagleeye Praktikant
28. marts 2006 - 23:35 #3
Så kan du sætte int omkting variablen i if sætningen så fjerner den "0" foran og laver typen om til tal:

If int(TheDay) >= day(now) Then
Avatar billede want2learn Nybegynder
29. marts 2006 - 00:13 #4
hmm ok

hvad så hvis jeg vil lave en SQL linje ??

kan man sige:
Select [Match_Year]"&"[Match_Month]"&"[Match_Day] AS Match


MATCH_YEAR = 06
MATCH_MONTH = 04
MATCH_DAY = 03

bliver AS = Match
MATCH = 060403

!?
Avatar billede eagleeye Praktikant
29. marts 2006 - 00:17 #5
Er Match_Year og de andre kolonner i databasen så skal det skrives ude " bare med &

Select [Match_Year]&[Match_Month]&[Match_Day] AS Match


Er Match_Year og de andre variable i ASP koden skal det se sådan her ud:

Select '" & Match_Year & Match_Month & Match_Day & "' AS Match
Avatar billede want2learn Nybegynder
29. marts 2006 - 00:29 #6
hmm
jeg kan ikke køre execute i denne kode hvad er fejlen i den !?

strSQL = "SELECT TOP 5 [Team_Name], [Match_Day], [Match_Month], [Match_Year], [Match_Time], [Home_Team], [Away_Team], [Total_Score], [Match_Year]&[Match_Month]&[Match_Day] AS Match FROM Program"
strSQL = strSQL & " WHERE Match >= 060403"
strSQL = strSQL & " ORDER BY [Match_Day] ASC;"
Set objRS = objConn.Execute(strSQL)
Avatar billede eagleeye Praktikant
29. marts 2006 - 08:20 #7
Det kommer an på hvilken database du bruger.

Hvis du bruger Access (og det liger access) virker det ikke fordi man ikke kan skrive et alias navn i order by eller group by delen. Så man skal skive det igen:

ORDER BY [Match_Year]&[Match_Month]&[Match_Day] ASC
Avatar billede eagleeye Praktikant
29. marts 2006 - 08:23 #8
og det samme gælder i WHERE delen :)
Avatar billede want2learn Nybegynder
29. marts 2006 - 08:58 #9
okay tror næsten jeg har fået det til at køre og ja det er access, men hvis min kode er dette og jeg får en fejl hvad er problemet evt.

KODE:
strYear = DatePart("yyyy", Date())
strYear = Replace(strYear, "20", "")
strMonth = Right("0" & DatePart("m", Date()), 2)
strDay = Right("0" & DatePart("d", Date()), 2)
Match_Date = strYear&strMonth&strDay

Dim cnstDBPath
  cnstDBPath = ("db.mdb")
  Dim strProvider
 
  Set objConn = Server.CreateObject("ADODB.Connection")
  strProvider = "" & "Provider=Microsoft.Jet.OLEDB.4.0;"
  strProvider = strProvider & "Data Source=" & cnstDBPath & ";"
  strProvider = strProvider & "Persist Security Info=False"
  objConn.Connectionstring = strProvider
  set fso = Server.CreateObject("Scripting.FileSystemObject")
  objConn.Open
   
strSQL = "SELECT TOP 5 [Team_Name], [Match_Day], [Match_Month], [Match_Year], [Match_Time], [Home_Team], [Away_Team], [Total_Score] FROM Program"
strSQL = strSQL & " WHERE [Match_Year]&[Match_Month]&[Match_Day] >= Match_Date"
strSQL = strSQL & " ORDER BY [Match_Year]&[Match_Month]&[Match_Day] ASC;"
Set objRS = objConn.Execute(strSQL)


FEJL:
Microsoft JET Database Engine error '80040e10'

No value given for one or more required parameters.

/team&results/top_program.asp, line 108


LINJE 108
Set objRS = objConn.Execute(strSQL)
Avatar billede eagleeye Praktikant
29. marts 2006 - 09:08 #10
Fejlen betyder der mangler en værdi til en kolonne, eller omvendt. Typsik fordi en variablen er tom..Så vidt jeg kan er Match_Date en variable i ASP koden og ikke en kolonne i SQL sætnningen:

strSQL = strSQL & " WHERE [Match_Year]&[Match_Month]&[Match_Day] >= Match_Date"


Så hvis det er rigtigt så prøv sådan her:

strSQL = strSQL & " WHERE [Match_Year]&[Match_Month]&[Match_Day] >= '" & Match_Date & "'"
Avatar billede want2learn Nybegynder
29. marts 2006 - 23:00 #11
mange tak nu virker 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