我正在使用JDBC和Java来获取如下所示的帐户ID记录:
select s.account_id, s.status, o.phonenumber
from table1 s, table2 o
where s.valid_from='1-DEC-16'
and o.phonenumber IS NOT NULL
and s.validTo=sysdate
and s.status='active'
and and s.account_id = o.account_id;
在结果集中,我获得了活动记录的所有附件。我有没有办法每月执行这个查询,并在每个月末输出帐户ID?在这种情况下,我应该如何自动提供valid_from
和valid_to
日期?
答案 0 :(得分:0)
与数据库交换数据时,请使用智能对象,而不是哑字符串。
使用JDBC 4.2或更高版本,您可以直接与数据库交换现代 java.time 对象。
对于仅限日期的值,请使用For i = 1 To 10:
If Range("A" & i).Value = "" Then
Else
On Error GoTo Handler
datavalue = Application.WorksheetFunction.VLookup(Sheets("DataManipulation").Range("A" & i), Sheets("ExtractQ1").Range("A1:G1048576"), 4, False)
Sheets("DataManipulation").Range("B" & i).Value = datavalue
Handler:
Next i
End If
Next i
。要获得每月的第一天,请使用LocalDate
。
YearMonth
使用SQL之类的内容:
ZoneId z = ZoneId.of( “Africa/Tunis” ) ;
YearMonth ym = YearMonth.now( z ) ;
LocalDate firstOfThisMonth = ym.atDay( 1 ) ;
LocalDate firstOfNextMonth = ym.plusMonths( 1 ).atDay( 1 ) ;
传递该占位符的值。
… WHERE happened >= ? AND happened < ?
此方法称为半开放,其中开头为包含,而结尾为独占。通常是定义时间跨度的最佳方式。请注意,对于此方法,我们 not 使用SQL运算符myPreparedStatement.setObject( 1 , firstOfMonth ) ;
myPreparedStatement.setObject( 2 , firstOfNextMonth ) ;
,因为它已完全关闭。
检索。
BETWEEN