Varför visar iday rätt datum och när jag plockar information ur databasen visar den month5 day26 ??? Använd istället en kolumn med dataypen datum. Är effektivar och sparar mass med bekymmer som datum och tid kan ställa till med. problemet är att datumet sorteras in i olika kolumner Year, month, day. för att ändra det blir det fel med en del andra funktioner. Sedan är jag slö också :) Passar du på att korrigera ditt misstag nu så slipper du ju de problem det kommer ställa till med. Bästa sättet att slippa sånthär är att göra rätt från början. Därför skall man tänka igenom allt från början.fel datum
<%
Dim iDay, iMonth, iYear
iDay = Day(Date)
iMonth = Month(Date)
iYear = Year(Date)
%>
day<% Response.Write(iday) %><br> "visar rätt"
month <% Response.Write(imonth) %><br>"visar rätt"
year<% Response.Write(iyear) %><br>"visar rätt"
<% Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM calendar WHERE year >= " &(iYear)& " AND Month >= "&(iMonth)&" AND Day >= "&(iDay)&" " RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
%>
<% =RecSet("subject") %>, mån<% =RecSet("month") %>, day<% =RecSet("day") %>
<% RecSet.Close %>Sv: fel datum
Sv: fel datum
Sv: fel datum
Annars kan du lösa ditt problem så här:
<code>
<%
strSQL = "SELECT TOP 1 calendar.*" & vbCrLf & _
"FROM calendar" & vbCrLf & _
"WHERE DateSerial(calendar.Year, calendar.Month, calendar.Day) >= Date() " & vbCrLf & _
"ORDER BY calendar.Year, calendar.Month, calendar.Day"
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open strSQL, Connect
If RecSet.EOF Then
Response.Write "Det saknar poster för dagens datum"
Else
Response.Write "subject: " & RecSet("subject") & ", mån: " & RecSet("month") & ", day: " & RecSet("day")
End If
RecSet.Close
Set RecSet = Nothing
%>
</code>
Vilket är en hemsk lösning. Eftersom DateSerial måste anropas för alla poster i databasen för att sedan gämföra resultatet.
Arbeta i fortsättningen med datum och tid som ett fält. Då kommer du kunna slöa betydligt mer och få bätre resultat. Vilket aldrig kan var fel.