Re: time field query problems.
| From: | DL Neil | Date: | Mon, 29 Jul 2002 22:34:10 +0000 |
| Subject: | Re: time field query problems. | ||
| References: | 1 | Groups: | php.db |
| Request: | Send a blank email to php-db+get-20877@lists.php.net to get a copy of this message | ||
Steve,
> For some reason the below statement is not working. Can anyone tell me
why?
>
> Select EDIT_LOCK from ordmaster where EDIT_LOCK + INTERVAL 10 MINUTE <
now()
> AND ORDER_NO = '5' AND EDIT_LOCK > 0;
>
> -EDIT_LOCK is a MySQL (ver 3.23.49-max) time field, allows nulls, default
is
> NULL.
>
> If this cannot be done in a query, whats the best way to compare time in
> php?
The best way to compare time in PHP is to use the MySQL RDBMS that is
managing/retrieving the data for you.
Recommendation 1: do not use a Time field (you did mean the back 'half' of a
Date-time field didn't you?). Because you are (apparently only) using this
field to temporarily lock a row, the value is only ever used for computation
(cf display). A Timestamp field is best for computation - a Time field for
presentation. Consider also storing such data as an integer field or beware
the automatic update feature for Timestamp fields.
Recommendation 2: re-consider the (default) use of NULL - this may be the
root of the question you're asking: what if the row has never been 'locked'
and attempt the (above) SELECT? (then the last comparison clause would be
illogical) If the default were zero (0 or 00:00:00) and the retrieval logic
updated slightly, things should be less complicated.
Regards,
=dn