지금까지
mrsql>update revoke_req set done_date=now() where serial_num="0B";
라고 했더니 2개의 값이 바뀌었는데,
mysql>update revoke_req set done_date="1999-10-30 10:10:10" where serial_num="0B";
라고 하면 done_date의 값만 바뀝니다.
아무래도 now()란 것에 어떠한(제가 알지못하는) 성질이 있는것 같습니다.
> 제 결과를 잘 보시기 바랍니다.
>
> mysql> select * from revoke_req;
> +------------+--------------+--------------+-------+
> | serial_num | apply_date | done_date | check |
> +------------+--------------+--------------+-------+
> | 0B | 991028084631 | 991028084510 | 3 |
> | 0C | 991028084154 | 991028084154 | 22 |
> +------------+--------------+--------------+-------+
> 2 rows in set (0.01 sec)
>
> mysql> update revoke_req set check=10 where serial_num="0B";
> Query OK, 1 row affected (0.00 sec)
> Rows matched: 1 Changed: 1 Warnings: 0
>
> mysql> select * from revoke_req;
> +------------+--------------+--------------+-------+
> | serial_num | apply_date | done_date | check |
> +------------+--------------+--------------+-------+
> | 0B | 991028084916 | 991028084510 | 10 |
> | 0C | 991028084154 | 991028084154 | 22 |
> +------------+--------------+--------------+-------+
> 2 rows in set (0.00 sec)
>
> mysql> update revoke_req set apply_date=now()-1,done_date=NOW() where
> serial_num="0B";
> Query OK, 1 row affected (0.00 sec)
> Rows matched: 1 Changed: 1 Warnings: 0
>
> mysql> select * from revoke_req;
> +------------+--------------+--------------+-------+
> | serial_num | apply_date | done_date | check |
> +------------+--------------+--------------+-------+
> | 0B | 991028085124 | 991028085125 | 10 |
> | 0C | 991028084154 | 991028084154 | 22 |
> +------------+--------------+--------------+-------+
> 2 rows in set (0.00 sec)
>
> mysql> update revoke_req set done_date=NOW() where serial_num="0B";Que
> ry OK, 1 row affected (0.00 sec)
> Rows matched: 1 Changed: 1 Warnings: 0
>
> mysql> select * from revoke_req;
> +------------+--------------+--------------+-------+
> | serial_num | apply_date | done_date | check |
> +------------+--------------+--------------+-------+
> | 0B | 991028085144 | 991028085144 | 10 |
> | 0C | 991028084154 | 991028084154 | 22 |
> +------------+--------------+--------------+-------+
> 2 rows in set (0.00 sec)
>
> 위의 결과를 보면 apply_date라는 필드를 mysql이 자체적으로
> 사용하는 모양입니다. apply_date=NOW()-1은 계산이 되구요.
>
> 가끔 저런 필드이름이 있던데요.
> 안전장치가 없고, 메뉴얼에도 없고, 해보시면서 찾아보는 수
> 밖에 없는 듯 합니다.
>
>
> > select * from revoke_req; 한 결과
> > +------------+--------------+--------------+-------+
> > | serial_num | apply_date | done_date | check |
> > +------------+--------------+--------------+-------+
> > | 0B | 991026002130 | 000000000000 | 20 |
> > | 0C | 991026165513 | 991026165513 | 22 |
> > +------------+--------------+--------------+-------+
> > 2 rows in set (0.00 sec)
> >
> > mysql> update revoke_req set done_date=now() where serial_num="0B";
>
> > Query OK, 1 row affected (0.00 sec)
> > Rows matched: 1 Changed: 1 Warnings: 0
> >
> > 저는 done_date만 현재시간으로 바꿨는데 왜 apply_date까지도
> > 함께 바뀌는지 모르겠네요..
> >
> > mysql> select * from revoke_req; 바뀐 결과
> > +------------+--------------+--------------+-------+
> > | serial_num | apply_date | done_date | check |
> > +------------+--------------+--------------+-------+
> > | 0B | 991026165823 | 991026165823 | 20 |
> > | 0C | 991026165513 | 991026165513 | 22 |
> > +------------+--------------+--------------+---
> >
> > 참 신기하죠. 원인 좀 알려주세요...
> >
> >
> > mysql>show columns from revoke_req; 한 결과는 다음과 같습니다.
> > +----------+-------------------+------+-----+---------+-------+
> > | Field | Type | Null | Key | Default | Extra |
> > +----------+-------------------+------+-----+---------+-------+
> > |serial_num|varchar(50) | | PRI | 0 | |
> > |apply_date|timestamp(12) | YES | | NULL | |
> > |done_date |timestamp(12) | YES | | NULL | |
> > |check |char(3) | | | | |
> > +----------+-------------------+------+-----+---------+-------+
> >
> > 부탁드립니다.
> > 항상 질문만 드리게 되는 군요..아는게 없어서...쩝
> >
> >
> >
> >
|