我正在尝试获取当天减去五天的值,但我想要特殊格式的结果(不是 MySQL 格式):
SELECT DATE_FORMAT(DATE_SUB( DATE_FORMAT( CURDATE( ) , '%d.%m.%Y' ) , INTERVAL -5
DAY ), '%d.%m.%Y')
我更改了 curdate() 的格式和结果的格式,但当天是:
03.09.2013
我得到如下结果:
25.09.2003
任何人都可以向我解释为什么我不能得到正确的结果有什么问题吗?
我正在尝试获取当天减去五天的值,但我想要特殊格式的结果(不是 MySQL 格式):
SELECT DATE_FORMAT(DATE_SUB( DATE_FORMAT( CURDATE( ) , '%d.%m.%Y' ) , INTERVAL -5
DAY ), '%d.%m.%Y')
我更改了 curdate() 的格式和结果的格式,但当天是:
03.09.2013
我得到如下结果:
25.09.2003
任何人都可以向我解释为什么我不能得到正确的结果有什么问题吗?
首先,您应该减去DATE (或兼容)格式的值,然后将其转换为您想要接收的格式:
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL -5 DAY), '%d.%m.%Y')
您查询中的第二个问题是您要减去一个负值,最后加上一个值(例如10 - (-5) = 15:)。您应该使用以下方法之一:
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 5 DAY), '%d.%m.%Y')
或者
SELECT DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -5 DAY), '%d.%m.%Y')
还有一个更短的方法来编写这个查询:
SELECT DATE_FORMAT(CURDATE() - INTERVAL 5 DAY, '%d.%m.%Y')
也可以看看: