Avatar billede ecpower Nybegynder
13. april 2007 - 12:09 Der er 5 kommentarer og
1 løsning

Opdatere en datetime kolonne

Hej
Jeg skal opdatere en datetime kolonne som indeholder rækker med <NULL>. Disse rækker skal blot sættes den aktuelle dags dato. det eneste specielle er at jeg skal af med tidsstemplet så kun datoen står i rækkerne. Er der nogen der kan fortælle den rigtige måde at gøre det på? Jeg har forsøgt med GETDATE() men kan ikke finde ud af at få skippet tisdelen, og jeg har forsøgt at gemme de 3 dateparts i variabler og derefter sammensætte dem til en dato hvilket giver et rigtigt format men en forkert dato.

Venlig hilsen
Karl Henrik
Avatar billede fennec Nybegynder
13. april 2007 - 12:23 #1
Hvis det kun skal køres denne ene gang, kan du så ikke bare hardcode datoen ind??

update tabel set dato='2007-04-13' where dato is null
Avatar billede fennec Nybegynder
13. april 2007 - 12:24 #2
ellers skal du splitte GETDATE op. Du skal bare huske at det skal samles til yyyy-mm-dd formatet.
Avatar billede fennec Nybegynder
13. april 2007 - 12:47 #3
Synes jeg havde set en nemmere løsning engang, og den fandt jeg lige frem. Dette er metoden til at få en dato uden tid:

update tabel set dato=CONVERT(datetime, CONVERT(varchar, GETDATE(), 103), 103) where dato is null

.o) <-- One Eyed Jack
Avatar billede ecpower Nybegynder
13. april 2007 - 12:51 #4
Hej
Først undskyld at jeg kom til at sende spm. 2 gange.

Det er en kørsel der skal afvikles mange gange. Jeg har prøvet med følgende:

DECLARE @naviday int
DECLARE @navimonth int
DECLARE @naviyear int
SET @naviday = (DATEPART(day, getdate()))
SET @navimonth = (DATEPART(month, getdate()))
SET @naviyear = (DATEPART(year, getdate()))
UPDATE dbo.ecpower$servinvoiceline_tmp
SET dbo.ecpower$servinvoiceline_tmp.[date] = @naviday+'-'+@navimonth+'-'+@naviyear
WHERE [date] IS NULL

Som returnerer: 1905-07-18

Hvis jeg laver select på de enkelte datodele returneres den rigtige værdi. Hvad gør jeg forkert?

Hvordan giver man forresten de point?

vh, karl henrik
Avatar billede ecpower Nybegynder
13. april 2007 - 12:58 #5
Mange tak det virker, og jeg fandt ud af det med pointene

vh. Karl Henrik
Avatar billede fennec Nybegynder
13. april 2007 - 13:11 #6
Du skal mærkere mit navn i boksen til venstre også vælge accepter. Når point er afgivet, bliver det lille flag i toppen blåt, og point kommer til at stå ud for mit svar.

Som nyt medlem vil jeg anbefale at du læser den uofficelle faq:
http://expfaq.dk/

Specielt point afgivning er der mange som spørger om:
http://expfaq.dk/behandling_af_svar#behandling_af_svar

Ofte får du kun kommentar til dit spørgsmål. Det gøres for at point ikke ved et uheld bliver afgivet til den forkerte. Når dit problem løst, beder du personen, som klare det, om at smide et svar.

Og velkommen til E. Du vil ikke fortryde 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
Computerworld tilbyder specialiserede kurser i database-management

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