Avatar billede hifi4all Nybegynder
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
-----------
Avatar billede hifi4all Nybegynder
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)
Avatar billede hifi4all Nybegynder
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
%>
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