SQL日期操作

时间:2015-03-05 13:47:54

标签: mysql sql sql-server date

在表格中,我有两个日期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

非常感谢任何想法!

1 个答案:

答案 0 :(得分:1)

如果已将值存储为数据库中的日期/时间值(而不是字符串),则可以在任一数据库中使用datediff()。语法略有不同。

在SQL Server中:

select datediff(day, BidDate, EndDate)

在MySQL中:

select datediff(EndDate, BidDate)

如果它们存储为字符串,那么您应该修复数据库结构,以便以原生格式存储日期。除此之外,您可以转换它们,但转换代码高度依赖于数据库。