28. december 2006 - 21:43
Der er
1 kommentar og
1 løsning
Updatering af SmallDateTime felt i SQL 2005
Jeg er blevet forvirret, og river snart håret af hovedet!!!
Årsagen skyldes, at nedenstående kodestup fint fungere med en SQL 2000, men ikke med SQL 2005???
Er der nogen der kan hjælpe??
---------
'Opdater sidste tidspunkt for login
LastLogin = rsCommon.Fields.Item("bruger_logget_ind").Value
DatoNu = Now()
If LastLogin < DatoNu Then
set LastLoginAutoUpdate = Server.CreateObject("ADODB.Command")
LastLoginAutoUpdate.ActiveConnection = MM_AVM_STRING
LastLoginAutoUpdate.CommandText = "UPDATE tbl_user SET bruger_logget_ind = '"& DatoNu &"' WHERE bruger_uid = '" &BrugerIDNr& "'"
LastLoginAutoUpdate.CommandType = 1
LastLoginAutoUpdate.CommandTimeout = 0
LastLoginAutoUpdate.Prepared = true
LastLoginAutoUpdate.Execute()
set LastLoginAutoUpdate = nothing
end if
-----------
28. december 2006 - 22:41
#1
Har fundet en løsning!
Gør nu brug af international dato istedet, da SQL 2005 åbenbart kræver dette! :O(
variablen "DatoNu" er derfor ændret til:
DatoNu = Year(Now()) & "-" & Month(Now()) & "-" & Day(Now()) & " " & Hour(Now()) & ":" & Minute(Now())& ":" & Second(Now())
Så spiller det - og ja, datoformatet ændres helt automatisk i databasen, hvis den naturligvis er sat op til det nordiske format!
Godt nytår til alle! ;O)
31. december 2006 - 02:43
#2
I forlængelse af ovenstående, følger her en viderebygning, som gør det muligt at manipulere med dato og tid i form af variabler.
For mig, gør det arbejdet noget nemmere!
Måske der var andre der kunne få brug for nedenstående? :)
Kode:
<%
'Dato angives i international format til brug for SQL datoer og tid
Dim IntDateTime
IntDateTime = Year(Now()) & "-" & Month(Now()) & "-" & Day(Now()) & " " & Hour(Now()) & ":" & Minute(Now())& ":" & Second(Now())
'Resultat: YYYY-MM-DD HH:MM:SS
'*********************************************
'Dato konverteres til spiselig model for MSSQL
Private Function ConvertToSqlDate(dato)
Dim SQLYear
Dim SQLMonth
Dim SQLDay
Dim SQLHour
Dim SQLMinute,SQLSecond
SQLYear = Year(dato)
SQLMonth = Month(dato)
SQLDay = Day(dato)
SQLHour = Hour(dato)
SQLMinute = Minute(dato)
SQLSecond = Second(dato)
if SQLDay<10 then
SQLDay = 0&SQLDay
end if
if SQLMonth<10 then
SQLMonth = 0&SQLMonth
end if
if SQLHour<10 then
SQLHour = 0&SQLHour
end if
if SQLMinute<10 then
SQLMinute = 0&SQLMinute
end if
if SQLSecond<10 then
SQLSecond = 0&SQLSecond
end if
ConvertToSqlDate = SQLYear& "-" &SQLMonth& "-" &SQLDay& " "&SQLHour& ":" &SQLMinute& ":" &SQLSecond
End Function
'Nu kan da overføres som variabel, ligesom der er muligt at trække/ tilægge år, måned, dag, time, minut og sekund til datoen med hjælp af VBScript´s DateAdd funktion
'Her følger et par ekspemler
Dim Dato1
Dim Dato2
Dim Dato3
'Tilæg 1 uge til dags dato
Dato1 = ConvertToSqlDate(DateAdd("ww", 1, IntDateTime))
Response.Write Dato1
'Tilæg 1 måned til dags dato
Dato2 = ConvertToSqlDate(DateAdd("m", 1, IntDateTime))
Response.Write Dato2
'Tillæg 1 time til nuværende tidspunkt
Dato3 = ConvertToSqlDate(DateAdd("h", 1, IntDateTime))
Response.Write Dato3
%>