CURDATE()

CURDATE()

am 18.08.2011 09:15:36 von ron.piggott

------=_NextPart_000_0140_01CC5D55.195B9F20
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable


I am setting up a daily cron job to update the site map on my web site. =


I want to delete any records that werenâ€=99t updated by the cron =
job each day. The way I can distinguish this is with the timestamp =
column named â€=9Clast_record_updateâ€=9D If a record =
wasnâ€=99t updated it is no longer part of the web site.=20

I am trying to figure out if there is a way for me to use =
mysqlâ€=99s date functions to query the records that are no longer =
part of the web site.

What I tried below doesnâ€=99t work: ( CURDATE() . % )

The reason I wanted to use % is because the time will follow the date in =
a â€=9Ctimestampâ€=9D column

Is there a similar way to do what I am trying:

SELECT `reference` FROM `sitemap_pages` WHERE `last_record_update` NOT =
LIKE ( CURDATE() . % ) ORDER BY `reference` +0

Thanks for helping. =20

Ron

The Verse of the Day
â€=9CEncouragement from Godâ€=99s Wordâ€=9D
http://www.TheVerseOfTheDay.info =20

------=_NextPart_000_0140_01CC5D55.195B9F20--

Re: CURDATE()

am 18.08.2011 11:21:22 von Geoff Lane

On Thursday, August 18, 2011, Ron Piggott wrote;

> What I tried below doesn=92t work: ( CURDATE() . % )

Even though date values are presented like strings, they are
dates/times. So you need to either cast CURDATE() to a string or else
perform 'date arithmetic'. Check the manual for DATEDIFF(), CAST(),
and CONVERT().

> NOT LIKE ( CURDATE() . % )

I suspect that PHP's concatenation operator (the period) isn't
recognised by MySQL (assuming that's the DB you're using). So you need
to either use MySQL's CONCAT() function or else create the search
string in PHP rather than MySQL. However, if you're going to do this,
you need to also cast last_record_update to a string.

Personally, I'd use:
WHERE DATEDIFF(CURDATE(), last_record_update) > 1
(testing for 1 rather than 0 just in case the date rolled over between
the update and the 'stale record' check.)

HTH,

--=20
Geoff


--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Re: CURDATE()

am 20.08.2011 07:21:28 von win.acc

--20cf305b13389c61ac04aae904ef
Content-Type: text/plain; charset=UTF-8

I tried on my db
"select count(*) from my_table where col_timestamp the column col_timestamp type is timestamp,this sql works well.
hope it helpful.

All you best
------------------------
What we are struggling for ?
The life or the life ?



On Thu, Aug 18, 2011 at 5:21 PM, Geoff Lane wrote:

> On Thursday, August 18, 2011, Ron Piggott wrote;
>
> > What I tried below doesn t work: ( CURDATE() . % )
>
> Even though date values are presented like strings, they are
> dates/times. So you need to either cast CURDATE() to a string or else
> perform 'date arithmetic'. Check the manual for DATEDIFF(), CAST(),
> and CONVERT().
>
> > NOT LIKE ( CURDATE() . % )
>
> I suspect that PHP's concatenation operator (the period) isn't
> recognised by MySQL (assuming that's the DB you're using). So you need
> to either use MySQL's CONCAT() function or else create the search
> string in PHP rather than MySQL. However, if you're going to do this,
> you need to also cast last_record_update to a string.
>
> Personally, I'd use:
> WHERE DATEDIFF(CURDATE(), last_record_update) > 1
> (testing for 1 rather than 0 just in case the date rolled over between
> the update and the 'stale record' check.)
>
> HTH,
>
> --
> Geoff
>
>
> --
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

--20cf305b13389c61ac04aae904ef--