如何组合Date_format和Date_sub

时间:2014-10-26 15:49:05

标签: mysql date date-format intervals

我想从当前日期减去1年2个月和5天,但我试图用不同的格式打印出来。而不是它的组合,它打印出2个不同的东西

select DATE_FORMAT(NOW(), '%W, %M %d, %Y, %h:%i%p'),DATE_Sub(DATE_Sub(Date_Sub(NOW(), INTERVAL 2   year), INTERVAL 2 month), Interval 5 day);

2 个答案:

答案 0 :(得分:1)

只需使用date_sub()即可获得正确的日期/时间:

select date_sub(date_sub(date_sub(now(), interval 1 year), interval 2 month), interval 2 day)

select date_sub(date_sub(now(), interval 14 month), interval 2 day)

然后使用date_format()以您想要的任何格式获取它:

select date_format(date_sub(date_sub(now(), interval 14 month), interval 2 day), '%W, %M %d, %Y, %h:%i%p')

答案 1 :(得分:1)

在您的查询中,您打印两个字符串,第一个将date_format应用于NOW(),第二个执行计算,但不应用date_format。

也许这就是你想要的?

SELECT
DATE_FORMAT(
  DATE_Sub(
    DATE_Sub(
      Date_Sub(
        NOW(), 
        INTERVAL 2 year), 
      INTERVAL 2 month), 
    Interval 5 day), 
  '%W, %M %d, %Y, %h:%i%p'
);

输出:

Tuesday, August 21, 2012, 03:58PM

Sample SQL Fiddle