mysql date format dd/mm/yyyy? - mysql

Does anyone know how to insert into column(of date type) date in the format of dd-mm-yyyy?
I'm using calendar, and it selects days like dd-mm-yyyy, but it can't be inserted because of the format that uses mysql by default (yyyy-mm-dd).
The problem is, that I need to compare dates that has been inserted by the calendar and the dates that has been automatically inserted with current_date function. Basicly I have column DoR (date_of_registration) and Status. I've made DoR of date type, and Status of varchar(). In the Status I use Calendar to insert the date. Thus, I've compared it anyway but it gives strange results. I guess it is not comparing correctly.
Any ideas?
Thanks

Convert the output from calendar into date format like this
$cal_date=17-08-2012;
$date=date('Y-m-d',strtotime($cal_date));
echo $date; //gives date as 2012-08-17
Now you can insert this date into mysql and do comparisons

select str_to_date('31-12-2012', '%d-%m-%Y')
See STR_TO_DATE

All you need are these two functions:
STR_TO_DATE()
and
DATE_FORMAT()

Please, always store dates as a DATE type in MySQL. If you need to select it in another form, use the correct string function DATE_FORMAT!

You don't need to insert database as dd-mm-yyyy. You have to user date format. If you are writing code in php you can parse date what every type you want
Select datetime for database. And insert date data date("Y-m-d H:i:s"); when you want to echo date different formats like
echo date('d-m-Y', strtotime('2012-08-17 19:00:00'));

There is also another way to store the date like, if you are choose that
`<input type="date" name="bdate" />
`
then it directly store the date in to database in yyyy-MM-DD Format.
Here my text field format is dd-mm-yyyy.
Here you don't have to convert the string using strtotime()

Related

How to get Time from Mysql Date Format DD/MM/YYYY?

I want to get time from mysql dd/mm/YYYY H:M:S format.
I have tried,
SUBSTRING_INDEX(field, 'delimiter', index)
but am looking for a better solution.
have tried, DATE_FORMAT(field, "%H:%i:%s") but it returns NULL because my date format was not native (YYYY-mm-dd)
it was 02/05/2019 19:38:27
How to get time from this above format in a better way?
NOTE: I am storing date like above.. this fetching form SQL Server
I guess you can first use STR_TO_DATE followed by CAST(... AS time). Casting instead of formatting allows you to use the result in date/time calculations.
SELECT CAST(STR_TO_DATE('02/05/2019 19:38:27', "%d/%m/%Y %H:%i:%s") AS TIME)
Ideally you should teach SQL Server to export dates in yyyy-MM-dd hh:mm:ss format.
This is how i Resolved,
TIME(STR_TO_DATE(d.in_punch, "%d/%m/%Y %H:%i:%s"))
also as per #Salman A
CAST(STR_TO_DATE('02/05/2019 19:38:27', "%d/%m/%Y %H:%i:%s") AS TIME)
this also worked.

MySQL data prompt in UK 'dd-mm-yyyy'

I am new to MySQL and can't seem to find a answer to convert a date prompt to UK date. Where the user can enter the date in the format of 'dd-mm-yyyy'.
The actual field is in unixtimestamp as well. What I am trying to do is have the user filter between 2 date period example.
where datefield between (unixtimestamp) and (unixtimestamp)
(the date entered will have to be in the format 'dd-mm-yyyy'
If anyone can shed some light, it will be greatly appreciated
use mysql str_to_date. The STR_TO_DATE() converts the str string into a date value based on the fmt format string.
between str_to_date(date,'%d-%m-%Y') and str_to_date(date,'%d-%m-%Y')
I suggest you to create a function in your application to convert from the UK format dd-mm-yyyy to the mysql format yyyy-mm-dd, this way will send the parameters in the correct format.
select FROM_UNIXTIME(dateadded,"%d/%m/%y"), dateadded, FROM_UNIXTIME(dateadded,"dd/mm/yy")
from purchase_orders
where str_to_date(FROM_UNIXTIME(dateadded, "%d/%m/%Y"),'%d/%m/%Y')
between str_to_date("01/08/15",'%d/%m/%Y') and str_to_date("08/11/15",'%d/%m/%Y')

how do I convert date type to hh:mm in mysql?

I got in my table two types:
hour_Event in type date
date_Event in type datetime
I would like hour_Event to be formatted to hh:mm
and date_Event to be dd/mm/yyyy
I use PHPMyAdmin and im new with MySQL so I dont know how to change the format and for what.
How do I do it?
**DATE_FORMAT(hour_Event,'%h:%i')** will give you hour_Event in hh:mm
and
**DATE_FORMAT(date_Event,'%d/%m/%Y')** will give you date_Event in dd/mm/yyyy
You could change the format using php before you insert data or after retrieving themfrom your database according to your needs.You could use DateTime / strtotime() & date(). In most cases a single timestamp field in your table is enough for an event.
Have a look here:
Convert one date format into another in PHP
Also you could format your field according to your needs with mysql for example:
DATE_FORMAT(tables.field, '%d-%m-%Y %H:%i:%s') AS 'new_name'
Have a look about it here:
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format

Mysql Date formt

How to Create a colummn DATE with format DD/MM/YYYY?
Mysql come for defaut with this formar YYY/MM/DD.
I need isert via HTML5 date Day/Month/Year, for this format come in DD/MM/YYYY
On your insert/select statements, you can convert MySQL Date Functions:
SELECT ... DATE_FORMAT(field,'%d/%m/%Y');
INSERT ... STR_TO_DATE('formatteddate','%d/%m/%Y')
you can check your js file if any,corresponding to date and change format to MySQL database format
I guess you could save it as a varchar, but that's messy. Your best option is to have MySQL save the date in the default format, then simply format the date to DD/MM/YYYY upon retrieval.

mysql date input

I have a database table--> date field and the date format is yyyy-mm-dd
if i input in anouther format then field show 0000-00-00
what is the problem and how i can overcome this whereas i have use no form encode method??
I would recommend using int(32) for your date field and storing unixtime. That way you can format your date into any type of string you want to display.
UNIX_TIMESTAMP()
It's called and the you can do this in your query.
INSERT INTO `table` (`date`) VALUES (UNIX_TIMESTAMP());
You can parse unixtime in any language, and many (like PHP) have built it parsing of unixtime.
date("Y-m-d", $row["time"]); // YYYY-MM-DD
Insert dates in YYYY-MM-DD (ISO format) and when retrieving the date, you may convert it to any format you like using:
DATE_FORMAT()
Reference:
DATE_FORMAT(date,format).