0

I was try to measure what is faster and what should be the best way to compare two dates, from datetime record in MySql db. There are several approaches how to grab a date from date time, but I was concentrate on two one is to use DATE function and second is to use LEFT function, something like this

DATE(created_on)

, and for LEFT function

LEFT(created_on,10)

it look's like those functions work same on my side. is there any better solution? or faster solution?

1
  • DATE() is exactly for that. LEFT() works due to automatic type conversion and MySQL fixed date representation. I believe it's not the thing that slowing you down anyway: reading table pages from disk is several orders of magnitude heavier operation. Commented Nov 19, 2009 at 17:12

1 Answer 1

1

Your best bet is to always use the function that does what your intended purpose is. Since you want to get the date part of a date field, use the DATE function.

If your intended purpose is to get the left most 10 characters of a date field, use the LEFT function.

For all practical purposes, the results are probably the same. But the only constant in software development is change. For instance, what if MySql decided they wanted to change the way dates are stored in the next version, say as epoch (or number of ticks since a certain date). Your code that uses the LEFT function may fail or return undesirable results. Code that uses the DATE function would continue to work.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.