![](/img/trans.png)
[英]How do I get next month date from today's date and insert it in my database?
[英]how do I get month from date in mysql
我希望能夠使用如下語句從mysql獲取結果:
SELECT *
FROM table
WHERE amount > 1000
但是我想把結果限制在一個月和一年(根據用戶的輸入)......我試着這樣:
SELECT *
FROM table
WHERE amount > 1000
AND dateStart = MONTH('$m')
...... $m
是一個月,但它給出了錯誤。
在該表中,它實際上有兩個日期: startDate
和endDate
但我專注於startDate
。 輸入值為月份和年份。 如何根據當年的那個月來說明獲得結果的SQL語句?
你很接近 - 向后得到比較(假設startDate
是DATETIME或TIMESTAMP數據類型):
SELECT *
FROM table
WHERE amount > 1000
AND MONTH(dateStart) = {$m}
因為在列上使用函數不能使用索引,所以更好的方法是使用BETWEEN
和STR_TO_DATE
函數:
WHERE startdate BETWEEN STR_TO_DATE([start_date], [format])
AND STR_TO_DATE([end_date], [format])
有關格式化語法,請參閱文檔。
使用month()
函數。
select month(now());
例如
$date = sprintf("'%04d-%02d-01'", $year, $month);
$query = "
SELECT
x,y,dateStart
FROM
tablename
WHERE
AND amount > 1000
AND dateStart >= $date
AND dateStart < $date+Interval 1 month
";
mysql_query($query, ...
這將創建一個查詢,例如
WHERE
AND amount > 1000
AND dateStart >= '2010-01-01'
AND dateStart < '2010-01-01'+Interval 1 month
+ Interval 1 month
是date_add()的替代方案。
SELECT Date('2010-01-01'+Interval 1 month)
- > 2010-02-01
SELECT Date('2010-12-01'+Interval 1 month)
- > 2011-01-01
這樣您就可以獲得下個月的第一天。 您想要的記錄必須在該日期之前有一個dateStart,但是等於您傳遞給sprintf()的月份(和年份)的第一天之后。
'2010-01-01'+Interval 1 month
不會在行之間發生變化。 MySQL將只計算一次該術語,並可以利用索引進行搜索。
嘗試這個:
SELECT *
FROM table
WHERE amount > 1000 AND MONTH(dateStart) = MONTH('$m') AND YEAR(dateStart) = YEAR('$m')
嘗試這個
SELECT *
FROM table
WHERE amount > 1000
AND MONTH(datestart)
GROUP BY EXTRACT(YEAR_MONTH FROM datestart)
如果(日期字段是文本然后將此字符串轉換為日期),請嘗試此操作:
SELECT * FROM `table_name` WHERE MONTH(STR_TO_DATE(date,'%d/%m/%Y'))='11'
//This will give month number MONTH(STR_TO_DATE(date,'%d/%m/%Y'))
//If its return 11 then its November
// Change date format with your date string format %d/%m/%Y
適用於:MySQL 5.7,MySQL 5.6,MySQL 5.5,MySQL 5.1,MySQL 5.0,MySQL 4.1,MySQL 4.0,MySQL 3.23
天:
SELECT EXTRACT(DAY FROM "2017-06-15");
月:
SELECT EXTRACT(MONTH FROM "2017-06-15");
年:
SELECT EXTRACT(YEAR FROM "2017-06-15");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.