我有历史记录表获得如下
ID Points earn_date
1 10 2017-04-04
2 8 2017-04-01
3 12 2017-04-28
4 7 2017-05-16
5 9 2017-06-03
现在从earn_date到今天,我希望使用查询
获取天数差异首先,我尝试了以下查询
SELECT *,earn_date - '2017-06-17' AS RemainDays FROM customer_earning
然后我尝试使用DATEDIFF
函数但没有得到结果
我如何获得日期结果
我想要的输出是如果我今天通过日期
ID Points earn_date Days
1 10 2017-04-04 74
2 8 2017-04-01 78
3 12 2017-04-28 50
4 7 2017-05-16 32
答案 0 :(得分:1)
这不符合你的要求吗?
SELECT ce.*, DATEDIFF('2017-06-17', ce.earn_date) AS RemainDays
FROM customer_earning ce;
根据问题中的信息,这应该计算剩余的天数。
你可以明确关于类型转换,但我怀疑这会有所作为:
SELECT ce.*,
DATEDIFF(DATE('2017-06-17'), DATE(ce.earn_date)) AS RemainDays
FROM customer_earning ce;
答案 1 :(得分:0)
尝试以下查询:
select *,DATEDIFF(day,Earn_Date,GETDATE()) as RemainDays FROM customer_earning
答案 2 :(得分:0)
使用以下查询
SELECT *,DATEDIFF(datepart,startdate,enddate) AS RemainDays FROM customer_earning;
例如:
SELECT *,DATEDIFF(day,GETDATE(),earn_date) AS RemainDays FROM customer_earning;
startdate:,例如今天日期 [GETDATE()]
enddate:,例如 earn_date
[datepart] 就像你想要计算的一样。例如,如果要计算天数,日期部分为天,如果要计算月数,则日期部分为月