[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mysql
Subject:    RE: Compare DATETIME to DATE
From:       "Gary W. Smith" <gary () primeexalia ! com>
Date:       2008-12-31 18:23:29
Message-ID: 417DD550405AF84F95040DA44520C8E505193C () pxtbenexd02 ! pxt ! primeexalia ! com
[Download RAW message or body]


Truncate the time part of the datetime field when doing the compare
 
AND DATE_FORMAT(customer.created_dt, '%Y-%m-%d 00:00:00') BETWEEN '2008-12-30' AND \
'2008-12-30'

Should work.  Probably not the most efficient.  The other options would be to use \
take end date + 1 day, minue 1 second.  That's even a bigger hack but it would \
probably be more efficient than converting all of the dates on the fly if you have a \
large number of records to process.  
 
________________________________

From: Johnny Withers [mailto:johnny@pixelated.net]
Sent: Wed 12/31/2008 10:13 AM
To: MySQL General List
Subject: Compare DATETIME to DATE



Hi,
I don't quite understand (or even know) what the "proper" way to compare a
DATETIME column to a given DATE value is. I've used various methods but I'd
like to know if there's a better way to compare these values.

Right now I have a query with this in the WHERE clause (customer.created_dt
is a DATETIME):

AND CAST(customer.created_dt AS DATE) BETWEEN '2008-12-30' AND '2008-12-30'

This was working (MySQL on Win32) before I moved the database to MySQL on
RHEL 64-bit (5.0.45-log).

Should that work?

I've also done this:

AND customer.created_dt BETWEEN '2008-12-30 00:00:00' AND '2008-12-30
23:59:59'

That works on both servers, but I really don't want to have to put the time
in there (unless that's the way you are supposed to do this).

I've though about using DATE_FORMAT... not sure about that either.


-----------------------------
Johnny Withers
601.209.4985
johnny@pixelated.net



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic