在MySql中查找特定日期

时间:2015-02-28 07:11:31

标签: mysql date

我知道这会给出语法错误。 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。 所以如何对上面的代码进行排序以避免语法错误。

2 个答案:

答案 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                                                  |
+--------------------------------------------------------------+