Avatar billede jenslyn_s Nybegynder
31. juli 2005 - 19:40 Der er 11 kommentarer og
1 løsning

alternativ til ADDTIME på mysql 3.25

MySQL 2.23.58
Hvad skal jeg bruge på min 'Time'-række når jeg ikke kan bruge addtime og subtime?
Avatar billede arne_v Ekspert
31. juli 2005 - 19:45 #1
DATE_ADD vil jeg tro
Avatar billede arne_v Ekspert
31. juli 2005 - 19:46 #2
og DATE_SUB
Avatar billede arne_v Ekspert
31. juli 2005 - 19:46 #3
klippet fra http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html:

mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
    ->                INTERVAL 1 DAY);
        -> '1998-01-01 23:59:59'
mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
    ->                INTERVAL '1:1' MINUTE_SECOND);
        -> '1998-01-01 00:01:00'
Avatar billede jenslyn_s Nybegynder
01. august 2005 - 10:50 #4
Okay, tak. Har selv prøvet at omskrive min eksisterende, men kan ikke få det til at virke
UPDATE Program SET Tid = DATE_ADD(Tid, '00:15:00')
Avatar billede arne_v Ekspert
01. august 2005 - 11:21 #5
Som jeg læser docs må det skulle være:

UPDATE Program SET Tid = DATE_ADD(Tid, INTERVAL '15:00' MINUTE_SECOND)
Avatar billede jenslyn_s Nybegynder
01. august 2005 - 15:50 #6
Ja, det lyder meget fornuftigt, men den sætter blot alle rækker til 00:00:00 :-/
Avatar billede arne_v Ekspert
01. august 2005 - 17:24 #7
det forstår jeg ikke !

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 3.23.58-max-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use test;
Database changed

mysql> create table program(tid datetime);
Query OK, 0 rows affected (0.05 sec)

mysql> insert into program values('2005-08-01 17:21');
Query OK, 1 row affected (0.00 sec)

mysql> select * from program;
+---------------------+
| tid                |
+---------------------+
| 2005-08-01 17:21:00 |
+---------------------+
1 row in set (0.00 sec)

mysql> update program set tid = date_add(tid,interval '15:00' minute_second);
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from program;
+---------------------+
| tid                |
+---------------------+
| 2005-08-01 17:36:00 |
+---------------------+
1 row in set (0.00 sec)
Avatar billede jenslyn_s Nybegynder
01. august 2005 - 18:07 #8
My bad vil jeg tro så - Min tabel var Time og ikke datetime... Tester senere
Avatar billede jenslyn_s Nybegynder
01. august 2005 - 18:25 #9
Pyyh, hvis jeg skal ændre mit field til datetime, så skal jeg også ændre mine insert på alle mine sider som skriver til databasen - argh! Jeg er nu _meget_ åben for en alternativ løsning så jeg slipper for at ændre i alle mine inserts.
Avatar billede arne_v Ekspert
01. august 2005 - 18:41 #10
hvad vil du have ud af 23:59:00 + 15:00 ?
Avatar billede jenslyn_s Nybegynder
01. august 2005 - 19:04 #11
nu omskrev jeg din sætning til hour_second så; 23:59:00 + 00:15:00 = 00:14:00. Men virker jo åbenbart kun på datetime, så må lave et par ændringer her og der...
Avatar billede jenslyn_s Nybegynder
18. juni 2006 - 19:23 #12
.
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