Avatar billede jenslyn_s Nybegynder
06. juni 2006 - 12:21 Der er 9 kommentarer og
1 løsning

Opdater kun tid i datetime

Som sagt,

har en datetime, hvor jeg vil opdatere tiden til f.eks. 17:00:00 - men bevare datoen som den er, hvordan gør jeg det?


Hilfe
Avatar billede barklund Nybegynder
06. juni 2006 - 12:29 #1
Det kan gøres med FROM/TO_DAYS og intervaller:

UPDATE table SET foodatetime = FROM_DAYS(TO_DAYS(foodatetime)) + INTERVAL 17 HOURS

Men gøres nok lidt mere effektiv som streng-håndtering:

UPDATE table SET foodatetime = SUBSTRING(foodatetime,0,11) + '17:00:00

Selvom det ikke er verdens pæneste løsning.

--
Morten Barklund
Avatar billede jenslyn_s Nybegynder
06. juni 2006 - 12:47 #2
DATE table SET foodatetime = SUBSTRING(foodatetime,0,11) + '17:00:00

Ja klart, men erfarer at jeg skal skrive 1,11 istedet - ellers er feltet tomt.... og jeg kan ikke rigtigt ligge de '17:00:00' til strengen, så bliver den bare default / 00:00:00  :-/ hmm...
Avatar billede jenslyn_s Nybegynder
06. juni 2006 - 12:52 #3
Min query:

UPDATE calendar SET dateStart = substring(dateStart,1,11) + "16:30:00" WHERE calendarID = 1
Avatar billede barklund Nybegynder
06. juni 2006 - 13:05 #4
Så skal du måske bruge 1,12 for at få mellemrummet med.
Avatar billede jenslyn_s Nybegynder
06. juni 2006 - 13:14 #5
Har prøvet ,12 og alt muligt, lagt mellemrum ind i " 16:30:00" etc - som om den bare ikke læses korrekt :-/
Avatar billede arne_v Ekspert
06. juni 2006 - 17:42 #6
hvilket programmerings sprog ?

muligvis er SQL ikke det bedste valg til opgaven !
Avatar billede jenslyn_s Nybegynder
06. juni 2006 - 17:55 #7
sandt, jeg burde lave en :

select(){
      update()
}
Avatar billede kjulius Novice
06. juni 2006 - 19:34 #8
Nu har jeg ikke adgang til MySQL pt. og kan derfor ikke teste det, men burde det ikke kunne gøres sådan?

UPDATE calendar SET dateStart = FROM_UNIXTIME(UNIX_TIMESTAMP(DATE(dateStart)) + TIME_TO_SEC('16:30:00'))
Avatar billede kjulius Novice
06. juni 2006 - 20:38 #9
Måske kan du også bruge sådan en?

UPDATE calendar SET dateStart = STR_TO_DATE(DATE_FORMAT(dateStart,'%Y%m%d') + '16:30:00', '%Y%m%d%T')
Avatar billede jenslyn_s Nybegynder
14. marts 2007 - 16:44 #10
ole lukke og slukke-øje was here
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