作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取当天减去五天的值,但我想要特殊格式的结果(不是 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')
另请参阅:
关于mysql - 如何从 CURDATE() 中减去一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18592395/
我是一名优秀的程序员,十分优秀!