需要日期之间的数据 SQL + Java

Posted

技术标签:

【中文标题】需要日期之间的数据 SQL + Java【英文标题】:In a need of data in between dates SQL + Java 【发布时间】:2014-10-23 11:58:49 【问题描述】:
select  sum(zetable)   
                 from    moneys                              
                 where   socialnumber = '" + socialnumber + "'                    
                 and     identifier = '" + id + "'            
                 and     salary in ('3333','3322','2222','2211')     
                 and     startdate <= stardatesalary            
                 and     (enddate >=  enddatesalary       
                 or      enddate is null)

所以我的问题是,虽然我确实从工资的开始日期正确地获得了工资。我应该查看我们试图从中获得薪水的月份的开始日期。例如,如果薪水从 6 月 16 日到 7 月 16 日,另一个从 7 月 28 日到 28 日。用薪水查找这些让我从 6 月到 7 月。如果我查看 7 月 1 日至 31 日,我会得到 7 月 1 日至 31 日的数据,但数据都集中在一堆,它无法按预期工作。

所以我有点需要工资期的结束日期和开始日期之间的月份我正在寻找数据,因为它会在 6 月 30 日将 6 月到 7 月的工资减少到 7 月 1 日至 16 日。而且它们需要分开,否则会搞砸很多事情。

我希望我对此很清楚。刚刚尝试在 SQL 中提出一个解决方案,但还不太清楚如何做到这一点。

【问题讨论】:

您使用的是哪个 DBMS?后格雷斯?甲骨文? 很好奇这与 Java 有什么关系。 知道你到底在问什么。请更清楚地重新表述您的问题。 -- 从我似乎读过的内容来看,一种粗略的方法可以是group by 仅限开始和/或结束日期的 Oracle 数据库。好吧,java可以根据我要查找的内容进行许多不同的搜索。因为我有一个 Web 界面,我可以在其中放置日期,然后通过 Java 将它们带到 sql 中。 【参考方案1】:

一种简单的方法是将您的结果与日期维度表(每个日期包含一行)连接起来。对于每一行,您将显示该特定日期的薪水(即,将全部薪水除以该薪水期所涵盖的天数)。然后你对这个新列进行分组和总结。

简单:)

【讨论】:

【参考方案2】:

看来我的问题更多是在 Java 方面。我用 if 语句比较了 try 中的日期,现在它得到了我想要的东西,很好。仍然没有得到两个相互重叠的日期的总和,但我会解决它并发布结果。然后发布完成的废话代码。

【讨论】:

以上是关于需要日期之间的数据 SQL + Java的主要内容,如果未能解决你的问题,请参考以下文章

SQL查询获取特定日期和列中最新日期之间的数据

需要在 SQL Server 2008 中查找两个日期之间的日期

用java如何实现 看数据库内的日期字段是否在我输入的2个日期段之间

Java中double类型与String 类型之间的互相转换

需要在 SQL 中计算日期之间滚动的 30 天期间内的操作数

SQL 中 2 个日期之间的 SQL 搜索