How to get date & month using date in mysql [duplicate] - php

This question already has answers here:
Compare only day and month with date field in mysql
(5 answers)
Get month name from Date
(40 answers)
Closed 5 years ago.
I want to get date & month from date. example 2017-06-15 so I want date & month i.e. -06-15. Do u have any idea? Really appreciated.
From Below query I am getting month from date. but I want both date & month
SELECT MONTHNAME(`date`) AS month_name FROM table_name;

SELECT DATE_FORMAT(date, '-%m-%d') AS month_name FROM table_name;
see the date_format documentation to see all the possible formats

MySQL MONTH() returns the MONTH for the date within a range of 1 to 12
( January to December). It Returns 0 when MONTH part for the date is
0.
SELECT MONTH('2009-05-18');
MySQL DAY() returns the day of the month for a specified date. The day
returned will be within the range of 1 to 31. If the given date is
‘0000-00-00’, the function will return 0. The DAYOFMONTH() is the
synonym of DAY().
SELECT DAY('2008-05-15');
Link : here

select month('2017-06-15'),DAY('2017-06-15')

you can use this function
DATEPART(datepart,date)
use below query
SELECT DATEPART(yyyy,datecolumn) AS dateYear,
DATEPART(mm,datecolumn) AS dateMonth,
DATEPART(dd,datecolumn) AS dateDay
FROM table_name

Related

get the month and year of the given date field [duplicate]

This question already has answers here:
How to select year and month from the created_at attributes of database table in laravel 5.1?
(3 answers)
Closed 2 years ago.
I have the field date_start field which is a date datatype. I want to get the month and year of the field date_start and check the month is in given date month '2021-02-01'.
$meeting_ids=DB::table('meeting_dump')
->Where(DB::raw(date('m-y',strtotime('meeting_dump.date_start'))),'=',date("m-y", strtotime($dates_between[0])))
->pluck('meeting_dump.parent_id')
->toArray();
given date is 2021-02-01 and meeting start date is 2021-02-01, 2021-01-05 need to pick the parent_id for 2021-02-01
You can do it with Carbon:
(new Carbon('2021-02-01'))->format("m-y") //this will yield 02-21
You can do the same for your date field.
For your problem I would suggest to create date range of month start and month end from your input date instead of formatting the dates on fly
$date = \Carbon\Carbon::parse("2021-02-01");
$start = $date->startOfMonth()->format('Y-m-d H:i:s');
$end = $date->endOfMonth()->format('Y-m-d H:i:s');
And in query builder use between filter the benefit of this approach is your query remains sargable means if there is an index added on this column it will use that index but if you perform formatting on your date column then index will get ignored
$meeting_ids= DB::table('meeting_dump')
->whereBetween('date_start', [$start, $end])
->pluck('parent_id')
->toArray();

SQL - Selecting DATE FORMAT from table and displaying on screen [duplicate]

This question already has answers here:
Convert one date format into another in PHP
(17 answers)
Query to convert from datetime to date mysql
(5 answers)
Parse date in MySQL
(2 answers)
Closed 4 years ago.
I have inserte date into my table and it is in the format YYYY-MM-DD, However when displaying this information I would like to display the date the in DD-MM-YYY format. If anyone has an idea how to achieve this please let me know. Please see my sql query below as this query it not working.
// Create query using SQL string
$sql_query = "SELECT title, level, DATE_FORMAT(dateTo, '%W %M %e
%Y')
FROM jobPost ORDER BY jobID DESC";
// Query database using connection
$result = $conn->query($sql_query);
You can use the following:
DATE_FORMAT(dateTo, '%d-%m-%Y')
/* For dateTo value of 2018-11-13, it will output 13-11-2018 */
Details:
%d Day of the month as a numeric value (01 to 31)
%m Month name as a numeric value (00 to 12)
%Y Year as a numeric, 4-digit value
Check the complete list of available format specifiers at: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format

how to find the next closest date in with my given date mysql and php [duplicate]

This question already has answers here:
Get closest date from MySQL table
(3 answers)
Closed 7 years ago.
Hi i have some examples dates given below.How to find the next closest date in php or in mysql ?
I have some date like 12-04-2015 so now i need to get the closest date after the given date.So in my case my closest date is 15-04-2015.How can i find using PHP and mysql ?? Any one help me
PHP
$date = date("Y-m-d");// current date
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 day");
Mysql
SELECT Birthdate FROM hedging ORDER BY ABS(DATEDIFF(Birthdate , `2015-04-12`)) LIMIT 1
How can i execute the above query in mysql ?
BirthDate
25-03-2015
10-04-2015
10-04-2015
11-04-2015
15-04-2015
30-04-2015
You've not given us much information about what you've tried.
In PHP, store the dates in an array, you can then simply sort it and choose the next value.
In SQL so long as they are stored as dates, then WHERE date > $date ORDER BY date DESC LIMIT 1 will give you the next date.

get month & year from Mysql Date format m/d/y & compare with today's month & year

I have mysql date format m/d/y as varchar like 03/12/2015 for 12 March 2015. Now I want to count all the result from mysql table in which the month & year are the same as of today's date.
I am using following query, but no sucess
SELECT * FROM student where DATE_FORMAT(regd_date,'%m/%y')=DATE_FORMAT(now(),'%m/%y')"
Thanks for any help
You will first need to use STR_TO_DATE() to convert your varchar column to a date before using DATE_FORMAT().
SELECT * FROM student
WHERE DATE_FORMAT(STR_TO_DATE(regd_date, '%m/%d/%Y'),'%m/%y') = DATE_FORMAT(now(),'%m/%y')
Adjust the format for STR_TO_DATE() accordingly.
Note: I would discourage storing dates as varchars.

mysql count rows and group them by month [duplicate]

This question already has answers here:
MySQL Query GROUP BY day / month / year
(17 answers)
Closed 8 years ago.
I have a table called cc_calls and there I have many call records I want to count them and group them in months I have a timestamp called starttime and I can use that row to extract the month, also limit the count for 12 months
the results should be like:
Month Count
January 768768
February 876786
March 987979
April 765765
May 898797
June 876876
July 786575
August 765765
September 689787
October 765879
November 897989
December 876876
Can anyone guide me or show me the mysql query that I need to get this result.
SELECT
MONTH(starttime),
COUNT(*)
FROM cc_calls
GROUP BY MONTH(starttime)
Be aware though, that this counts for each month of every year. You might want to include the year in the select and group by clauses or filter for a specific year in the where clause.
SELECT
MONTH(starttime),
COUNT(*)
FROM cc_calls
GROUP BY (MONTH(FROM_UNIXTIME(starttime)))

Categories