在表格中,我有两个日期BidDate,如:'05 / 03/2015 15:44'和EndDate,格式为'08 / 03/2015'。
我想得到的是基于EndDate之前的日期数量的平均出价。因此,当EndData = '08 / 03/2015'和BidDate = '05 / 03/2015 15:44'时,该值将为3,而不是03/01/1900 11:14:08。
SELECT Enddate-BidDate as DBE, AVG(CurrencyAmount)
FROM transactions ts
WHERE BidID = '12345'
GROUP BY Enddate-BidDate
ORDER BY 1
非常感谢任何想法!
答案 0 :(得分:1)
如果已将值存储为数据库中的日期/时间值(而不是字符串),则可以在任一数据库中使用datediff()
。语法略有不同。
在SQL Server中:
select datediff(day, BidDate, EndDate)
在MySQL中:
select datediff(EndDate, BidDate)
如果它们存储为字符串,那么您应该修复数据库结构,以便以原生格式存储日期。除此之外,您可以转换它们,但转换代码高度依赖于数据库。