我有一个看起来像这样的表:
lastmonth | lastmonth2
18-> Corresponding value to Date: 29-02-16 | 15 -> value for 31-01-16
我最近几个月得到了这张桌子。 我现在想要检索行的值,其中包含上个月的最后一天和上个月之前的月份。所以对于今天我想要检索31-1-16和29-2-16的值。
我的结果应如下:
{{1}}
感谢任何帮助。
干杯
答案 0 :(得分:1)
这是本月最后一天和上个月的逻辑:
<intrin.h>
您可以通过更改&#34; 1&#34;来获取相对于当月的任何月份的最后一天。
并且,我不知道什么日期&#34; 30-2-16&#34;。描述日期时,应使用ISO标准格式。 2016年2月的最后一天是2016-02-29。
答案 1 :(得分:0)
SELECT CASE
WHEN last_day(curdate()) = `DATE` THEN number
END as number_last_month,
CASE
WHEN last_day(date_sub(curdate(), interval 1 month)) = `DATE`
THEN number
END as number_last_month2
FROM cc_open_csi_view
我现在无法在sqlfiddle上测试它。
答案 2 :(得分:0)
这是Gordon用于确定正确日期和子查询的代码,用于获取这些行的Number值:
SELECT
(SELECT Number FROM cc_open_csi_view
WHERE last_day(date_sub(curdate(), interval 1 month)) = date(`DATE`)) as lastmonth,
(SELECT Number FROM cc_open_csi_view
WHERE last_day(date_sub(curdate(), interval 2 month)) = date(`DATE`)) as lastmonth2
FROM DUAL;
希望这就是你想要的!通过一个简单的例子为我工作。我不知道你是否需要date()
部分DATE
,但它似乎最安全。