如何在sql中根据日期获取数据

Posted

技术标签:

【中文标题】如何在sql中根据日期获取数据【英文标题】:How to fetch data according to date in sql 【发布时间】:2014-10-05 10:00:42 【问题描述】:

我有一张表 truck_data 与列 truck_no, diesel_filled, source, destination, amount

我只想获取truck_nodiesel_filled,这样它将显示整个月内每辆卡车中diesel_filled 的详细信息..

请告诉我相关的 SQL 查询 - 我已经尝试过这个查询,但它不起作用

SELECT 
   truck_no, diesel_filled, date 
FROM 
   truck-data 
ORDER BY 
   date

请帮帮我

提前致谢

我想要这样的输出

truck_no   1    2   3   4   5   6   7    8   9 etc(date from 1 to 31))
---------------------------------------------------------------------------
xyz       25   22  33  33  22  22  22  0   0 (diesel filled in truck order by date)
pqr       25   25  22  11  22  00  22  55  22
abc       21   15  12  14  13  00  22  00  00

【问题讨论】:

用一些示例数据创建一个小提琴,这真的不清楚。 sqlfiddle.com 先生,请检查一下现在是crt吗? 【参考方案1】:

目前还不清楚你想要什么。但我认为您正在混合演示文稿和数据

SELECT truck_no,diesel_filled,date 
FROM truck-data 
ORDER BY date

将为您提供按日期排序的所有行。大概你想要一些过滤器只显示一个特定的月份。

SELECT truck_no,diesel_filled,date 
FROM truck-data 
WHERE date >= 2014-10-05 AND date < 2014-11-01 ORDER BY date

获取今年 10 月的所有行。如果此处的日期是 DateTime 列。

然后你可以把它改成:

SELECT truck_no,sum(diesel_filled),Day(date) 
FROM truck-data 
WHERE date >= 2014-10-05 AND date < 2014-11-01 
GROUP BY truck_no
ORDER BY date"

这将只给你每天一排和卡车。如果 disel_filled 是某种数值。

然后,您必须在您的 UI 中以您喜欢的任何方式进行演示。例如,在您上面描述的某种数据透视表中。 当然,您也可以在 SQL 中执行此操作,但通常这是表示层的工作。 如果你真的想用 SQL 做,你可以看看:http://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx 如果您使用的是 MsSql。

【讨论】:

以上是关于如何在sql中根据日期获取数据的主要内容,如果未能解决你的问题,请参考以下文章

如何根据sql中组中的日期集获取前7天的数据

根据当前日期获取前 3 个月的数据 - MySQL

Microsoft SQL Server 2016,T-SQL:根据各个日期获取数据集的日期范围

如何项sql数据库中添加一年的日期

sql中如何获取当天时间的零点

如何在SQL中获取当前日期最近六个月的前一个月数据