我知道这会给出语法错误。
SELECT DATE_SUB(DATE_SUB(now(),INTERVAL 3 MONTH)),INTERVAL EXTRACT(DAY FROM (DATE_SUB(now(),INTERVAL 3 MONTH))) DAY) as oldDate
我是SQL的新手,在这里我试图找到3个月大的日期和那个月的第一天。 例如,今天3个月大的日期将是2014年11月28日,所以我必须显示01-11-2014。 所以如何对上面的代码进行排序以避免语法错误。
答案 0 :(得分:0)
您可以使用DATE_FORMAT根据您的要求设置日期格式。
SELECT DATE_SUB(NOW(), INTERVAL 3 MONTH) 3months_ago,
DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 3 MONTH), "01-%m-%Y") first_day
FROM DUAL
+---------------------+------------+
| 3months_ago | first_day |
+---------------------+------------+
| 2014-11-28 09:20:50 | 01-11-2014 |
+---------------------+------------+
答案 1 :(得分:0)
您可以使用date_format()
功能和date_sub()
来获取每月的第1天
mysql> select date_format(date_sub(curdate(),interval 3 month),'01-%m-%Y') ;
+--------------------------------------------------------------+
| date_format(date_sub(curdate(),interval 3 month),'01-%m-%Y') |
+--------------------------------------------------------------+
| 01-11-2014 |
+--------------------------------------------------------------+