MySQL date format
Solution 1:
Go to MySQL Reference - 10.5. Data Type Storage Requirements
Search for: Storage Requirements for Date and Time Types
Dates are internally stored as A three-byte integer packed as DD + MM×32 + YYYY×16×32
But, if you select a date column for display, it has to be shown in some way, so it comes out as 0000-00-00. It is not stored as a char(10) with that specific format.
If, for display, you need to see a specific format, you can convert it to VARCHAR in a specific format using Date_Format(). However, bear in mind that if you are using the query in a programming tool, this is not what you want to do. You want the raw date value, for display purposes, there will be a similar formatting function from whatever programming environment you use.
As you can see from the reference in DATE_FORMAT, you will want to use '%d-%m-%Y'
, e.g.
SELECT col1, col2, DATE_FORMAT(datecolumn, '%d-%m-%Y') AS datecolumn, more1...
FROM sometable
....
Solution 2:
No, it's not possible. But you can use DATE_FORMAT to select that way.
SELECT Date_format(mydatefield, '%d-%m-%Y')
FROM table
Solution 3:
No, it's not possible while keeping it as a date field. I suggest you keep it in that format - so you can use all mysql date functions - and change it only when you display it to the users.
You can either do it application side or directly with a query:
SELECT DATE_FORMAT(date_field, "%d-%m-%Y") FROM ...