Я хочу отправлять отчет о зарегистрированных пользователях на сайте каждую неделю из таблицы пользователей в базе данных MySQL / Oracle. Для этого я создал Java программу, которая выбирает зарегистрированных пользователей в течение недели, сохраняет ее в файле Excel и отправляет по почте. Я планирую эту задачу с помощью Windows Task Scheduler для запуска каждую неделю. Я хочу получить время последнего запуска этого планировщика и время следующего добавления для добавления в sql запрос. Мой SQL запрос подобен приведенному ниже.
SELECT * FROM USERS WHERE TRUNC(USER_CREATION_DATE) BETWEEN 'FROMDATE' AND 'TODATE';
FROM_DATE & TO_DATE будут переменными.
Есть ли лучший способ получить FROM_DATE и TO_DATE, когда планировщик запускается каждую неделю сначала день, т.е. воскресенье, что означает, что я хочу, чтобы дата последнего воскресенья была FROM_DATE, а суббота - TO_DATE в Java.
. Вот мой код Java для создания файла Excel из SQL результата запроса
public class Write_to_excel_file_from_my_sql_database {
public static void main(String[] args) throws InterruptedException, IOException {
WritableWorkbook wworkbook;
try {
SimpleDateFormat formatter = new SimpleDateFormat("dd-mm-yyyy-HH-mm-ss");
Date date = new Date();
String unique = formatter.format(date);
String uniqueFileName = "EXCEL" + "_" + unique + ".xls";
String savePath = "XlsFiles";
File fileSavePath = new File(savePath);
if (!fileSavePath.exists() && !fileSavePath.isDirectory()) {
fileSavePath.mkdir();
}
/* Generating unique filename */
String destination = fileSavePath + File.separator + uniqueFileName;
wworkbook = Workbook.createWorkbook(new File(destination));
DBConnection_HR obj_DBConnection_LMC = new DBConnection_HR();
Connection connection = obj_DBConnection_LMC.getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
String query = "select * from users where trunc(user_creation_date) between 'from_date' and 'to_date';";
ps = connection.prepareStatement(query);
rs = ps.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
WritableSheet wsheet = wworkbook.createSheet("Users", 0);
Label label = new Label(0, 0, "SR NO");
wsheet.addCell(label);
//int i = 0;
int y = 1;
while (rs.next()) {
for (int s = 1; s <= rsmd.getColumnCount(); s++) {
label = new Label(s, 0, rs.getMetaData().getColumnName(+s).toUpperCase());
wsheet.addCell(label);
}
for (int x = 1; x <= rsmd.getColumnCount(); x++) {
label = new Label(0, y, y + "");
wsheet.addCell(label);
label = new Label(x, y, rs.getString(+x));
wsheet.addCell(label);
}
y++;
}
wworkbook.write();
wworkbook.close();
System.out.println("fineshed");
//Sending Mail
SendAttachment.sendMail(destination);
} catch (Exception e) {
System.out.println(e);
}
}
}
Пожалуйста, помогите мне получить FROM_DATE и TO_DATE прошлой недели.